网站大量收购闲置独家精品文档,联系QQ:2885784924

tts语音朗读TTS中英文混合朗读的完全设计.pdf

tts语音朗读TTS中英文混合朗读的完全设计.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tts语音朗读TTS中英文混合朗读的完全设计

tts语音朗读:TTS中英文混合朗读的完全设计 实现 疯狂代码 http://CrazyC/ ĵ http:/CrazyC/BlogDigest/Article76012.html ===========转载请注明出处:南才北往=================本文由所有代码全由南才北往开 发的转载请注明原作者名称=== ===========转载请注明出处:南才北往==============中英文混 合朗读一直是个难点 ,即在一段文本中要将中文和英文分离出来进行分别朗读,又不能打乱朗读的次序,所以 我们设计如下的两种方法,每种方法都有各自的优点和缺点。 ;①采用同步朗读方式进行混合朗读 : ;将朗读文 本进行提取分析,提取本文本中的中文和英文,在编程中,我们设定两个标志:const ;int ;IsEnglish ;= ;0; ;// ;英文标志 const ;int ;IsChinese ;= ;3; ;// ;中文标志 标点符号和数字默认和它前面的字的标志一致。当处理文 本时标志发生改变时, 立即调用语音合成引擎进行朗读。 //循环遍历每个字 for ;(int ;i ;= ;0; ;i ; ;length; ;i++) {//提取字母 current ;= ;m_strTxt.GetAt(i);// ;如果是英文字母 , 标志设为 0 if((current ;= ;A ; ;current ;= ;Z) ;|| ;(current ;= ;a ; ;current ;= ;z)){CFlag ;= ;IsEnglish; ;// ;如果是英文字母 , 标志设为 0 } else ;if((current ;=0current= ;64)||(current ;=91current= ;96)||(current ;=123current= ;127))//如果是数字则和它的前一个字母的标志一样 {if(PFlag==IsEnglish) CFlag=IsEnglish;//英文标志 elseCFlag=IsChinese;//中文标志 }else{CFlag ;= ;IsChinese;//中文标志 }if ;(CFlag ;== ;PFlag) ;//若当前标志与前一个字母标志相同则个数增一 iCount++;else ;{ ;if ;(iCount!=0) ;//字符 类型变化 , 读出前面的文本 ;{ ;if(PFlag==IsEnglish)SetVoice(szwEnglish);//将引擎设置成英文引擎 else ; SetVoice(szwChinese);//将引擎设置成中文引擎 str ;= ;m_strTxt.Mid(first,iCount);//提取出标志相同的文字 //设置成同步朗读方式,将文本同步朗读出来 hr ;= ;m_IpVoice-Speak(str.AllocSysString(), ;0, ;0 ;);}PFlag ;= ;CFlag;//改变当前标志 first ;= ;i;//设置当前位置 iCount ;= ;1;//个数还原为 1 } ;}//读出最后一段文本 if (PFlag==IsEnglish)SetVoice(szwEnglish);//将引擎设置成英文引擎 else ;SetVoice(szwChinese);//将引擎设 置成中文引擎 str ;= ;m_strTxt.Mid(first,length);//设置成同步朗读方式,将文本同步朗读出来 hr ;= ;m_IpVoice-Speak(str.AllocSysString(), ;0, ;0 ;); ===========转载请注明出处:南才北往 =================本文由所有代码全由南才北往开发的转载请注明原作者名称=== ===========转载请注明出处:南才北往============== ;②采用异步XML格式进行混合朗读 : ;将 第二种方式与第一中方式相似,区别只是在于它是将文本进一步进行处理,最后生成符合XML朗读格式的文本后对 文本进行朗读,而不是调用当标志发生改变时立即调用语音合成引擎进行朗读://设置XML起始标志 strEngine.printf(xml ;version=\1.0\\nSAPI\nVOICE ;REQUIRED=\NAME=%s\ ,m_strZHEngine.c_str());strWord+=strEngine;for ;(int ;i ;= ;1; ;i ;= ;nLength; ;i++){ ;if ;(iCou

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档