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: |