| gauche goUS | gauche goUS | ||||
| gauge geIdZ | gauge geIdZ | ||||
| gavel gav@L | gavel gav@L | ||||
| gecko gEkoU | |||||
| geese gi:s | geese gi:s | ||||
| gemini dZEmI2naI | gemini dZEmI2naI | ||||
| geni dZi:ni | geni dZi:ni |
| chloro kl,o@roU | chloro kl,o@roU | ||||
| choir kwaI3 | choir kwaI3 | ||||
| ch (ol k | ch (ol k | ||||
| _) ch (ola tS // for lang=ta | |||||
| choly k@l%I | choly k@l%I | ||||
| ch (ond k | ch (ond k | ||||
| ch (orA k | ch (orA k | ||||
| gg g | gg g | ||||
| g (e dZ | g (e dZ | ||||
| _) gaol dZeIl | _) gaol dZeIl | ||||
| _) g (ec g | |||||
| ge (dd g'E | ge (dd g'E | ||||
| g (eek g | g (eek g | ||||
| _) g (ert g | _) g (ert g | ||||
| _) g (ek g | |||||
| ge (nic_ dZ'E | ge (nic_ dZ'E | ||||
| genesis dZ'EnI2sIs | genesis dZ'EnI2sIs | ||||
| geous dZ=@s | geous dZ=@s |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2009 to 2010 by Jonathan Duddington * | |||||
| * Copyright (C) 2009 to 2012 by Jonathan Duddington * | |||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * | ||||
| _) க (ுணவதி g | _) க (ுணவதி g | ||||
| _) க (ுணவான g | _) க (ுணவான g | ||||
| _) க (ுணா g | _) க (ுணா g | ||||
| _) குண்ட (க்கல gun.t.V# | |||||
| _) க (ுண்டடி g | _) க (ுண்டடி g | ||||
| _) க (ுண்டன g | _) க (ுண்டன g | ||||
| _) க (ுண்டம்மா g | _) க (ுண்டம்மா g | ||||
| _) க (ுண்டின g | _) க (ுண்டின g | ||||
| _) க (ுண்டு g | _) க (ுண்டு g | ||||
| _) க (ுண்டூசி g | _) க (ுண்டூசி g | ||||
| _) குண்ட (ூர gun.t.V# | |||||
| _) க (ுண்டை g | _) க (ுண்டை g | ||||
| _) க (ுண்டோதர g | _) க (ுண்டோதர g | ||||
| _) க (ுதிக் g | _) க (ுதிக் g | ||||
| _) க (ுருமார g | _) க (ுருமார g | ||||
| _) க (ுருமூர்த்தி g | _) க (ுருமூர்த்தி g | ||||
| _) க (ுருரா g | _) க (ுருரா g | ||||
| _) க (ுருவடி g | |||||
| _) க (ுருவா g | _) க (ுருவா g | ||||
| _) க (ுருவாய g | _) க (ுருவாய g | ||||
| _) க (ுருவிட g | _) க (ுருவிட g | ||||
| _) க (ோரக g | _) க (ோரக g | ||||
| _) க (ோரத்_தாண்ட g | _) க (ோரத்_தாண்ட g | ||||
| _) க (ோரப்_L20 g | _) க (ோரப்_L20 g | ||||
| _) க (ோரப்பற் g | |||||
| _) க (ோரப்பல் g | |||||
| _) க (ோரப்போர g | |||||
| _) க (ோரம g | _) க (ோரம g | ||||
| _) க (ோலிக g | _) க (ோலிக g | ||||
| _) க (ோலிய g | _) க (ோலிய g | ||||
| _தென்) க (ாசி k | _தென்) க (ாசி k | ||||
| _நேர்) க (ாணல k | _நேர்) க (ாணல k | ||||
| _கண்) க (ாணா k | _கண்) க (ாணா k | ||||
| _ஏ) க (ாதசி k | |||||
| _ராம) க (ாதை k | _ராம) க (ாதை k | ||||
| இராம) க (ாதை k | இராம) க (ாதை k | ||||
| _ஸ்ரீ) காந்த ka:ntV# | _ஸ்ரீ) காந்த ka:ntV# | ||||
| நற்) க (ுண g | நற்) க (ுண g | ||||
| _சற்) க (ுண g | _சற்) க (ுண g | ||||
| ஏறிக்) க (ுதி g | ஏறிக்) க (ுதி g | ||||
| க (ுமரன k | |||||
| _கண்ணியா) க (ுமரி k | _கண்ணியா) க (ுமரி k | ||||
| க (ுமார k | க (ுமார k | ||||
| _டா) குமெண்ட kUmen.tV# | _டா) குமெண்ட kUmen.tV# | ||||
| நிர்) க்க (தி ggV | நிர்) க்க (தி ggV | ||||
| _தீர்) க்க (மாக ggV | _தீர்) க்க (மாக ggV | ||||
| _தீர்) க்க (மான ggV | _தீர்) க்க (மான ggV | ||||
| _தனி) க்க (வன ggV | |||||
| _முழு) க்க (வன ggV | |||||
| தீர்) க்க (ாலோசநை gg | தீர்) க்க (ாலோசநை gg | ||||
| _ல) க்க (ின gg | _ல) க்க (ின gg | ||||
| _வி) க்க (ினம்_ gg | _வி) க்க (ினம்_ gg | ||||
| அருணா) ச (ல tSV | அருணா) ச (ல tSV | ||||
| வெங்கடா) ச (ல tSV | வெங்கடா) ச (ல tSV | ||||
| வேங்கடா) ச (ல tSV | வேங்கடா) ச (ல tSV | ||||
| _) ச (லோ tSV | |||||
| _) ச (வான tSV | _) ச (வான tSV | ||||
| _) சாக்ப (ீL04 tSa:kp | _) சாக்ப (ீL04 tSa:kp | ||||
| _) சாக்லேட் tSa:kle:t. | _) சாக்லேட் tSa:kle:t. | ||||
| மே) சு (வ s | மே) சு (வ s | ||||
| வி) சு (வ s | வி) சு (வ s | ||||
| _சனீ) சு (வர s | _சனீ) சு (வர s | ||||
| ராஜே) சு (வர s | |||||
| அகிலாண்டே) சு (வர s | |||||
| இராவணே) சு (வர s | இராவணே) சு (வர s | ||||
| ராவணே) சு (வர s | ராவணே) சு (வர s | ||||
| _) சுவர்க்க svVrggV# | _) சுவர்க்க svVrggV# | ||||
| _) த (ானிய d | _) த (ானிய d | ||||
| _) த (ானியங்கி t | _) த (ானியங்கி t | ||||
| _) த (ானுவ d | _) த (ானுவ d | ||||
| _) த (ான்ய d | |||||
| _) த (ாமோதர d | _) த (ாமோதர d | ||||
| _) த (ாம்_தூம d | _) த (ாம்_தூம d | ||||
| _) த (ாயங்கள d | _) த (ாயங்கள d | ||||
| _) தீர்க்க (முள்ள di:rggV# | _) தீர்க்க (முள்ள di:rggV# | ||||
| _) தீர்க்க (ம்_ di:rggV | _) தீர்க்க (ம்_ di:rggV | ||||
| _) தீர்க்க (ாயு di:rggV# | _) தீர்க்க (ாயு di:rggV# | ||||
| _) த (ீவாளி d | |||||
| _) து(ரோக d | _) து(ரோக d | ||||
| _) த (ுக்க d | _) த (ுக்க d | ||||
| _) த (ுக்கா t | |||||
| _) த (ுக்கோ t | |||||
| _) த (ுச்சம d | _) த (ுச்சம d | ||||
| _) த (ுச்சாதனன d | _) த (ுச்சாதனன d | ||||
| _) த (ுஜஸ் d | _) த (ுஜஸ் d | ||||
| _) த (ேவரு t | _) த (ேவரு t | ||||
| _) த (ேவரை t | _) த (ேவரை t | ||||
| _) த (ேவர்_ t | _) த (ேவர்_ t | ||||
| _) த (ேவல t | |||||
| _) த (ேவல_ t | |||||
| _) த (ேவலை t | |||||
| _) த (ேவிடியா t | _) த (ேவிடியா t | ||||
| _) த (ேவிடியா t | _) த (ேவிடியா t | ||||
| _) த (ேவேந் d | _) த (ேவேந் d | ||||
| வா) த்த (ிய dd | வா) த்த (ிய dd | ||||
| வை) த்த (ிய dd | வை) த்த (ிய dd | ||||
| உபா) த்த (ிய dd | உபா) த்த (ிய dd | ||||
| _நைவே) த்த (ிய dd | |||||
| _சா) த்த (ிய_ tt | _சா) த்த (ிய_ tt | ||||
| பு) த்த (ியி dd | பு) த்த (ியி dd | ||||
| _சா) த்த (ியிரு tt | _சா) த்த (ியிரு tt | ||||
| _) ப (ாங்கில b | _) ப (ாங்கில b | ||||
| _) ப (ாங்க் b | _) ப (ாங்க் b | ||||
| _) ப (ாசு b | _) ப (ாசு b | ||||
| _) பாசுப (த pa:sUpV | |||||
| _) ப (ாசுர p | _) ப (ாசுர p | ||||
| _டெட்_) ப (ாடி b | _டெட்_) ப (ாடி b | ||||
| _) ப (ாடி_பில்டிங் b | _) ப (ாடி_பில்டிங் b | ||||
| _) ப (ாஷிய b | _) ப (ாஷிய b | ||||
| _) ப (ாஷை b | _) ப (ாஷை b | ||||
| _) ப (ாஷ்ய b | _) ப (ாஷ்ய b | ||||
| _) ப (ாஸந்தி b | |||||
| _) ப (ாஸ்கர b | _) ப (ாஸ்கர b | ||||
| _) ப (ாஸ்கி b | _) ப (ாஸ்கி b | ||||
| _) ப (ாஸ்டன b | _) ப (ாஸ்டன b | ||||
| _) பி (ரத்தியேக p | _) பி (ரத்தியேக p | ||||
| _) பிரத் (யேக prVt | _) பிரத் (யேக prVt | ||||
| _) பி (ரப p | _) பி (ரப p | ||||
| _) பிரம (ன brVmmV | |||||
| _) பி (ரமாண p | _) பி (ரமாண p | ||||
| _) பி (ரமாண்ட b | _) பி (ரமாண்ட b | ||||
| _) பி (ரமாத p | _) பி (ரமாத p | ||||
| _) பி (ரஸல்ஸ b | _) பி (ரஸல்ஸ b | ||||
| _) பி (ரஸாத p | _) பி (ரஸாத p | ||||
| _) பி (ரஸ்தா p | _) பி (ரஸ்தா p | ||||
| _) பி (ரஹதீசு b | |||||
| _) பி (ரஹதீஸ் b | |||||
| _) பி (ரஹலாத p | _) பி (ரஹலாத p | ||||
| _) பி (ரஹஸ் b | |||||
| _) பி (ராகார p | _) பி (ராகார p | ||||
| _) பி (ராகிருத p | _) பி (ராகிருத p | ||||
| _) பி (ராக்கள b | _) பி (ராக்கள b | ||||
| _) பிரு (கன்நளை bri | _) பிரு (கன்நளை bri | ||||
| _) பி (ருகு b | _) பி (ருகு b | ||||
| _) பிரு (ந்தா bri | _) பிரு (ந்தா bri | ||||
| _) ப (ிருஷ்ட b | |||||
| _) பிரெஞ்ச fren^tSV# | _) பிரெஞ்ச fren^tSV# | ||||
| _) பி (ரெட் b | _) பி (ரெட் b | ||||
| _) பிரெட்ரிக் fred.rik | _) பிரெட்ரிக் fred.rik | ||||
| _) ப (ௌதிக b | _) ப (ௌதிக b | ||||
| _) ப (ௌத்த b | _) ப (ௌத்த b | ||||
| _) ப (ௌலிங் b | _) ப (ௌலிங் b | ||||
| _) ப (ௌஷ b | |||||
| சு) ப்பி (ரமணி b | சு) ப்பி (ரமணி b | ||||
| _) ப் (ரசல்ஸ b | _) ப் (ரசல்ஸ b | ||||
| _) ப்ரபொ (சர profV | _) ப்ரபொ (சர profV | ||||
| நன்) ப (கல pV | நன்) ப (கல pV | ||||
| பின்) ப (கல pV | பின்) ப (கல pV | ||||
| முன்) ப (கல pV | முன்) ப (கல pV | ||||
| னி) ப (கவான் bV | |||||
| வட) ப (குதி pV | வட) ப (குதி pV | ||||
| தென்) ப (குதி pV | தென்) ப (குதி pV | ||||
| அக்கம்) ப (க்க bV | அக்கம்) ப (க்க bV | ||||
| வட) ப (ழ pV | வட) ப (ழ pV | ||||
| வீண்) ப (ழி pV | வீண்) ப (ழி pV | ||||
| _முத்து) ப (வள pV | _முத்து) ப (வள pV | ||||
| த) ப (ஸ bV | |||||
| _வா) ப (ஸ pV | _வா) ப (ஸ pV | ||||
| _தீ) ப (ா p | _தீ) ப (ா p | ||||
| _கலி) ப (ா f | _கலி) ப (ா f | ||||
| _நடை) ப (ாதை p | _நடை) ப (ாதை p | ||||
| ஜிந்தா) ப (ாத் b | ஜிந்தா) ப (ாத் b | ||||
| _பஞ்ச) ப (ாத்திர p | _பஞ்ச) ப (ாத்திர p | ||||
| அ) ப (ான p | |||||
| ச) பாபதி ba:pVti | ச) பாபதி ba:pVti | ||||
| _) பாபவிமோசன pa:bVvimo:tSV | _) பாபவிமோசன pa:bVvimo:tSV | ||||
| _சாயி) பாப (ா ba:b | _சாயி) பாப (ா ba:b | ||||
| அக்கினி) ப (ுத்திர p | அக்கினி) ப (ுத்திர p | ||||
| வில்லி) ப (ுத்தூர p | வில்லி) ப (ுத்தூர p | ||||
| ம்) ப (ுரா b | ம்) ப (ுரா b | ||||
| ம்) ப (ுரி b | |||||
| _தர்ம) ப (ுரி p | _தர்ம) ப (ுரி p | ||||
| _மர) ப (ுரிமை b | _மர) ப (ுரிமை b | ||||
| இன்) ப (ுற b | இன்) ப (ுற b | ||||
| _ர) ப்ப (ர bbV | _ர) ப்ப (ர bbV | ||||
| ஆ) ப்ப (ரிக்க fV | ஆ) ப்ப (ரிக்க fV | ||||
| தென்னா) ப்ப (ரிக்க fV | தென்னா) ப்ப (ரிக்க fV | ||||
| _கள) ப்ப (லி bbV | |||||
| உயிர்) ப்ப (லி bbV | உயிர்) ப்ப (லி bbV | ||||
| L03) ப்ப (ஸ bbV | L03) ப்ப (ஸ bbV | ||||
| _ட) ப்ப (ா bb | _ட) ப்ப (ா bb | ||||
| தேச) ப்பி (ரஷ்ட pp | தேச) ப்பி (ரஷ்ட pp | ||||
| ஆ) ப்பி (ரிக்க f | ஆ) ப்பி (ரிக்க f | ||||
| தென்னா) ப்பி (ரிக்க fV | தென்னா) ப்பி (ரிக்க fV | ||||
| _கஜ) ப்ப (ிருஷ்ட bb | |||||
| _ஹ) ப்ப (ிள bb | _ஹ) ப்ப (ிள bb | ||||
| _க்ள) ப்ப (ுகள bb | _க்ள) ப்ப (ுகள bb | ||||
| உ) ப்ப (ுசத்த bb | உ) ப்ப (ுசத்த bb | ||||
| உ) ப்ப (ுசம bb | உ) ப்ப (ுசம bb | ||||
| _சந்தேக) ப்ப (ுத்தி bb | _சந்தேக) ப்ப (ுத்தி bb | ||||
| L03) ப்ப (ூதத் bb | |||||
| L03) ப்ப (ூதம bb | |||||
| இ) ப்ப (ூமி bb | இ) ப்ப (ூமி bb | ||||
| _ல) ப்ப (ை bb | _ல) ப்ப (ை bb | ||||
| _தர்) ப்ப (ை bb | |||||
| துர்) ப்ப (ோதனை bb | துர்) ப்ப (ோதனை bb | ||||
| _கே) ப் (மாரி p | _கே) ப் (மாரி p | ||||
| கம்) ப்யூட (ர pjU:t.V | கம்) ப்யூட (ர pjU:t.V | ||||
| _ம) ெள (ஸ aU // bad scanning | _ம) ெள (ஸ aU // bad scanning | ||||
| _ச) ெள aU | _ச) ெள aU | ||||
| _ப) ெள aU | _ப) ெள aU | ||||
| _வ) ெள (வால aU | |||||
| ே e: | ே e: | ||||
| [Setup] | [Setup] | ||||
| AppName=eSpeak | AppName=eSpeak | ||||
| AppVerName=eSpeak version 1.46.02 | |||||
| AppVerName=eSpeak version 1.46.08 | |||||
| AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | ||||
| WindowVisible=yes | WindowVisible=yes | ||||
| $41: Result := 'sw'; | $41: Result := 'sw'; | ||||
| $49: Result := 'ta'; | $49: Result := 'ta'; | ||||
| $4b: Result := 'kn'; | $4b: Result := 'kn'; | ||||
| $4c: Result := 'ml'; | |||||
| //$50: Result := 'mn'; | //$50: Result := 'mn'; | ||||
| $52: Result := 'cy'; | $52: Result := 'cy'; | ||||
| //$5e: Result := 'am'; | //$5e: Result := 'am'; |
| [Setup] | [Setup] | ||||
| AppName=eSpeakEdit | AppName=eSpeakEdit | ||||
| AppVerName=eSpeakEdit version 1.46.02 | |||||
| AppVerName=eSpeakEdit version 1.46.01 | |||||
| DefaultDirName={pf}\eSpeak | DefaultDirName={pf}\eSpeak | ||||
| DefaultGroupName=eSpeak | DefaultGroupName=eSpeak | ||||
| OutputBaseFilename=setup_espeakedit | OutputBaseFilename=setup_espeakedit |
| if(p[0] == RULE_REPLACEMENTS) | if(p[0] == RULE_REPLACEMENTS) | ||||
| { | { | ||||
| pw = (unsigned int *)(((long)p+4) & ~3); // advance to next word boundary | |||||
| pw = (unsigned int *)(((long64)p+4) & ~3); // advance to next word boundary | |||||
| tr->langopts.replace_chars = pw; | tr->langopts.replace_chars = pw; | ||||
| while(pw[0] != 0) | while(pw[0] != 0) | ||||
| { | { |
| ENTER("MarkerEvent"); | ENTER("MarkerEvent"); | ||||
| espeak_EVENT *ep; | espeak_EVENT *ep; | ||||
| double time; | double time; | ||||
| PHONEME_TAB *ph; | |||||
| if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) | if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) | ||||
| return; | return; | ||||
| if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY)) | if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY)) | ||||
| ep->id.name = &namedata[value]; | ep->id.name = &namedata[value]; | ||||
| else | else | ||||
| #ifdef deleted | |||||
| //#ifdef deleted | |||||
| // temporarily removed, don't introduce until after eSpeak version 1.46.02 | // temporarily removed, don't introduce until after eSpeak version 1.46.02 | ||||
| if(type == espeakEVENT_PHONEME) | if(type == espeakEVENT_PHONEME) | ||||
| { | { | ||||
| p[1] = value2; | p[1] = value2; | ||||
| } | } | ||||
| else | else | ||||
| #endif | |||||
| //#endif | |||||
| { | { | ||||
| ep->id.number = value; | ep->id.number = value; | ||||
| } | } |
| #ifndef SPEAK_LIB_H | #ifndef SPEAK_LIB_H | ||||
| #define SPEAK_LIB_H | #define SPEAK_LIB_H | ||||
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2005 to 2010 by Jonathan Duddington * | |||||
| * Copyright (C) 2005 to 2012 by Jonathan Duddington * | |||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * |
| typedef unsigned short USHORT; | typedef unsigned short USHORT; | ||||
| typedef unsigned char UCHAR; | typedef unsigned char UCHAR; | ||||
| typedef double DOUBLEX; | typedef double DOUBLEX; | ||||
| typedef unsigned long long64; // use this for conversion between pointers and integers | |||||
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.02 06.Jan.12"; | |||||
| const char *version_string = "1.46.13 14.Jan.12"; | |||||
| const int version_phdata = 0x014600; | const int version_phdata = 0x014600; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| static void DoAmplitude(int amp, unsigned char *amp_env) | static void DoAmplitude(int amp, unsigned char *amp_env) | ||||
| {//===================================================== | {//===================================================== | ||||
| long *q; | |||||
| long64 *q; | |||||
| last_amp_cmd = wcmdq_tail; | last_amp_cmd = wcmdq_tail; | ||||
| amp_length = 0; // total length of vowel with this amplitude envelope | amp_length = 0; // total length of vowel with this amplitude envelope | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = WCMD_AMPLITUDE; | q[0] = WCMD_AMPLITUDE; | ||||
| q[1] = 0; // fill in later from amp_length | q[1] = 0; // fill in later from amp_length | ||||
| q[2] = (long)amp_env; | |||||
| q[2] = (long64)amp_env; | |||||
| q[3] = amp; | q[3] = amp; | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| } // end of DoAmplitude | } // end of DoAmplitude | ||||
| static void DoPitch(unsigned char *env, int pitch1, int pitch2) | static void DoPitch(unsigned char *env, int pitch1, int pitch2) | ||||
| {//============================================================ | {//============================================================ | ||||
| long *q; | |||||
| long64 *q; | |||||
| EndPitch(0); | EndPitch(0); | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = WCMD_PITCH; | q[0] = WCMD_PITCH; | ||||
| q[1] = 0; // length, fill in later from pitch_length | q[1] = 0; // length, fill in later from pitch_length | ||||
| q[2] = (long)env; | |||||
| q[2] = (long64)env; | |||||
| q[3] = (pitch1 << 16) + pitch2; | q[3] = (pitch1 << 16) + pitch2; | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| } // end of DoPitch | } // end of DoPitch | ||||
| int min_length; | int min_length; | ||||
| int x; | int x; | ||||
| int len4; | int len4; | ||||
| long *q; | |||||
| long64 *q; | |||||
| unsigned char *p; | unsigned char *p; | ||||
| index = index & 0x7fffff; | index = index & 0x7fffff; | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = WCMD_WAVE2; | q[0] = WCMD_WAVE2; | ||||
| q[1] = length | (wav_length << 16); // length in samples | q[1] = length | (wav_length << 16); // length in samples | ||||
| q[2] = long(&wavefile_data[index]); | |||||
| q[2] = long64(&wavefile_data[index]); | |||||
| q[3] = wav_scale + (amp << 8); | q[3] = wav_scale + (amp << 8); | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| return(length); | return(length); | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = WCMD_WAVE; | q[0] = WCMD_WAVE; | ||||
| q[1] = x; // length in samples | q[1] = x; // length in samples | ||||
| q[2] = long(&wavefile_data[index]); | |||||
| q[2] = long64(&wavefile_data[index]); | |||||
| q[3] = wav_scale + (amp << 8); | q[3] = wav_scale + (amp << 8); | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = WCMD_WAVE; | q[0] = WCMD_WAVE; | ||||
| q[1] = len4*2; // length in samples | q[1] = len4*2; // length in samples | ||||
| q[2] = long(&wavefile_data[index+x]); | |||||
| q[2] = long64(&wavefile_data[index+x]); | |||||
| q[3] = wav_scale + (amp << 8); | q[3] = wav_scale + (amp << 8); | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = WCMD_WAVE; | q[0] = WCMD_WAVE; | ||||
| q[1] = length; // length in samples | q[1] = length; // length in samples | ||||
| q[2] = long(&wavefile_data[index+x]); | |||||
| q[2] = long64(&wavefile_data[index+x]); | |||||
| q[3] = wav_scale + (amp << 8); | q[3] = wav_scale + (amp << 8); | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| } | } | ||||
| {//========================== | {//========================== | ||||
| // Limit the rate of frequence change of formants, to reduce chirping | // Limit the rate of frequence change of formants, to reduce chirping | ||||
| long *q; | |||||
| long64 *q; | |||||
| frame_t *frame; | frame_t *frame; | ||||
| frame_t *frame2; | frame_t *frame2; | ||||
| frame_t *frame1; | frame_t *frame1; | ||||
| frame1 = (frame_t *)q[3]; | frame1 = (frame_t *)q[3]; | ||||
| if(frame1 == frame) | if(frame1 == frame) | ||||
| { | { | ||||
| q[3] = (long)frame2; | |||||
| q[3] = (long64)frame2; | |||||
| frame1 = frame2; | frame1 = frame2; | ||||
| } | } | ||||
| else | else | ||||
| modified = 1; | modified = 1; | ||||
| } | } | ||||
| frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; | frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; | ||||
| q[2] = (long)frame2; | |||||
| q[2] = (long64)frame2; | |||||
| } | } | ||||
| else | else | ||||
| if(diff < -allowed) | if(diff < -allowed) | ||||
| modified = 1; | modified = 1; | ||||
| } | } | ||||
| frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; | frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; | ||||
| q[2] = (long)frame2; | |||||
| q[2] = (long64)frame2; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| { | { | ||||
| if(frame1 == frame) | if(frame1 == frame) | ||||
| { | { | ||||
| q[2] = (long)frame2; | |||||
| q[2] = (long64)frame2; | |||||
| frame1 = frame2; | frame1 = frame2; | ||||
| } | } | ||||
| else | else | ||||
| modified = 1; | modified = 1; | ||||
| } | } | ||||
| frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; | frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; | ||||
| q[3] = (long)frame2; | |||||
| q[3] = (long64)frame2; | |||||
| } | } | ||||
| else | else | ||||
| if(diff < -allowed) | if(diff < -allowed) | ||||
| modified = 1; | modified = 1; | ||||
| } | } | ||||
| frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; | frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; | ||||
| q[3] = (long)frame2; | |||||
| q[3] = (long64)frame2; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| frame_t *frame2; | frame_t *frame2; | ||||
| frame_t *fr; | frame_t *fr; | ||||
| int ix; | int ix; | ||||
| long *q; | |||||
| long64 *q; | |||||
| int len; | int len; | ||||
| int frame_length; | int frame_length; | ||||
| int length_factor; | int length_factor; | ||||
| && !(last_frame->frflags & FRFLAG_BREAK)) | && !(last_frame->frflags & FRFLAG_BREAK)) | ||||
| { | { | ||||
| // last frame of previous sequence was zero-length, replace with first of this sequence | // last frame of previous sequence was zero-length, replace with first of this sequence | ||||
| wcmdq[last_wcmdq][3] = (long)frame1; | |||||
| wcmdq[last_wcmdq][3] = (long64)frame1; | |||||
| if(last_frame->frflags & FRFLAG_BREAK_LF) | if(last_frame->frflags & FRFLAG_BREAK_LF) | ||||
| { | { | ||||
| fr->ffreq[ix] = last_frame->ffreq[ix]; | fr->ffreq[ix] = last_frame->ffreq[ix]; | ||||
| fr->fheight[ix] = last_frame->fheight[ix]; | fr->fheight[ix] = last_frame->fheight[ix]; | ||||
| } | } | ||||
| wcmdq[last_wcmdq][3] = (long)fr; | |||||
| wcmdq[last_wcmdq][3] = (long64)fr; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| q = wcmdq[wcmdq_tail]; | q = wcmdq[wcmdq_tail]; | ||||
| q[0] = wcmd_spect; | q[0] = wcmd_spect; | ||||
| q[1] = len + (modulation << 16); | q[1] = len + (modulation << 16); | ||||
| q[2] = long(frame1); | |||||
| q[3] = long(frame2); | |||||
| q[2] = (long64)frame1; | |||||
| q[3] = (long64)frame2; | |||||
| WcmdqInc(); | WcmdqInc(); | ||||
| } | } | ||||
| v2 = (voice_t *)malloc(sizeof(voice_t)); | v2 = (voice_t *)malloc(sizeof(voice_t)); | ||||
| memcpy(v2,v,sizeof(voice_t)); | memcpy(v2,v,sizeof(voice_t)); | ||||
| wcmdq[wcmdq_tail][0] = WCMD_VOICE; | wcmdq[wcmdq_tail][0] = WCMD_VOICE; | ||||
| wcmdq[wcmdq_tail][1] = (long)(v2); | |||||
| wcmdq[wcmdq_tail][2] = (long64)v2; | |||||
| WcmdqInc(); | WcmdqInc(); | ||||
| } | } | ||||
| DoPause(10,0); // ensure a break in the speech | DoPause(10,0); // ensure a break in the speech | ||||
| wcmdq[wcmdq_tail][0] = WCMD_WAVE; | wcmdq[wcmdq_tail][0] = WCMD_WAVE; | ||||
| wcmdq[wcmdq_tail][1] = soundicon_tab[value].length; | wcmdq[wcmdq_tail][1] = soundicon_tab[value].length; | ||||
| wcmdq[wcmdq_tail][2] = (long)soundicon_tab[value].data + 44; // skip WAV header | |||||
| wcmdq[wcmdq_tail][2] = (long64)soundicon_tab[value].data + 44; // skip WAV header | |||||
| wcmdq[wcmdq_tail][3] = 0x1500; // 16 bit data, amp=21 | wcmdq[wcmdq_tail][3] = 0x1500; // 16 bit data, amp=21 | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| } | } | ||||
| unsigned char *amp_env; | unsigned char *amp_env; | ||||
| PHONEME_TAB *ph; | PHONEME_TAB *ph; | ||||
| int use_ipa=0; | int use_ipa=0; | ||||
| int done_phoneme_marker; | |||||
| char phoneme_name[16]; | char phoneme_name[16]; | ||||
| static int sourceix=0; | static int sourceix=0; | ||||
| if(p->prepause > 0) | if(p->prepause > 0) | ||||
| DoPause(p->prepause,1); | DoPause(p->prepause,1); | ||||
| if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD)) | |||||
| done_phoneme_marker = 0; | |||||
| if(option_phoneme_events && (p->ph->code != phonEND_WORD)) | |||||
| { | { | ||||
| // Note, for vowels, do the phoneme event after the vowel-start | |||||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||||
| DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||||
| if((p->type == phVOWEL) && (prev->type==phLIQUID || prev->type==phNASAL)) | |||||
| { | |||||
| // For vowels following a liquid or nasal, do the phoneme event after the vowel-start | |||||
| } | |||||
| else | |||||
| { | |||||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||||
| DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||||
| done_phoneme_marker = 1; | |||||
| } | |||||
| } | } | ||||
| switch(p->type) | switch(p->type) | ||||
| DoSpect2(ph, 1, &fmtp, p, modulation); | DoSpect2(ph, 1, &fmtp, p, modulation); | ||||
| } | } | ||||
| if(option_phoneme_events) | |||||
| if((option_phoneme_events) && (done_phoneme_marker == 0)) | |||||
| { | { | ||||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | ||||
| DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); |
| #define N_WCMDQ 170 | #define N_WCMDQ 170 | ||||
| #define MIN_WCMDQ 25 // need this many free entries before adding new phoneme | #define MIN_WCMDQ 25 // need this many free entries before adding new phoneme | ||||
| extern long wcmdq[N_WCMDQ][4]; | |||||
| extern long64 wcmdq[N_WCMDQ][4]; | |||||
| extern int wcmdq_head; | extern int wcmdq_head; | ||||
| extern int wcmdq_tail; | extern int wcmdq_tail; | ||||
| int outbuf_size = 0; | int outbuf_size = 0; | ||||
| // the queue of operations passed to wavegen from sythesize | // the queue of operations passed to wavegen from sythesize | ||||
| long wcmdq[N_WCMDQ][4]; | |||||
| long64 wcmdq[N_WCMDQ][4]; | |||||
| int wcmdq_head=0; | int wcmdq_head=0; | ||||
| int wcmdq_tail=0; | int wcmdq_tail=0; | ||||
| // return: 0 output buffer has been filled | // return: 0 output buffer has been filled | ||||
| // return: 1 input command queue is now empty | // return: 1 input command queue is now empty | ||||
| long *q; | |||||
| long64 *q; | |||||
| int length; | int length; | ||||
| int result; | int result; | ||||
| int marker_type; | int marker_type; | ||||
| break; | break; | ||||
| case WCMD_VOICE: | case WCMD_VOICE: | ||||
| WavegenSetVoice((voice_t *)q[1]); | |||||
| free((voice_t *)q[1]); | |||||
| WavegenSetVoice((voice_t *)q[2]); | |||||
| free((voice_t *)q[2]); | |||||
| break; | break; | ||||
| case WCMD_EMBEDDED: | case WCMD_EMBEDDED: |