tts语音朗读tts中英文混合朗读的完全设计new

tts语音朗读tts中英文混合朗读的完全设计new

ID:34467554

大小:112.75 KB

页数:7页

时间:2019-03-06

tts语音朗读tts中英文混合朗读的完全设计new_第1页
tts语音朗读tts中英文混合朗读的完全设计new_第2页
tts语音朗读tts中英文混合朗读的完全设计new_第3页
tts语音朗读tts中英文混合朗读的完全设计new_第4页
tts语音朗读tts中英文混合朗读的完全设计new_第5页
资源描述:

《tts语音朗读tts中英文混合朗读的完全设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、tts语音朗读:TTS中英文混合朗读的完全设计实现疯狂代码http://CrazyCoder.cn/ĵ:http:/CrazyCoder.cn/BlogDigest/Article76012.html===========转载请注明出处:南才北往=================本文由所有代码全由南才北往开发的转载请注明原作者名称==============转载请注明出处:南才北往==============中英文混合朗读一直是个难点,即在一段文本中要将中文和英文分离出来进行分别朗读,又不能打乱朗读的次序,所以

2、我们设计如下的两种方法,每种方法都有各自的优点和缺点。;①采用同步朗读方式进行混合朗读:;将朗读文本进行提取分析,提取本文本中的中文和英文,在编程中,我们设定两个标志:const;int;IsEnglish;=;0;;//;英文标志const;int;IsChinese;=;3;;//;中文标志标点符号和数字默认和它前面的字的标志一致。当处理文本时标志发生改变时,立即调用语音合成引擎进行朗读。//循环遍历每个字for;(int;i;=;0;;i;<;length;;i++){//提取字母current;=;m_

3、strTxt.GetAt(i);//;如果是英文字母,标志设为0if((current;>=;'A';&&;current;<=;'Z');

4、

5、;(current;>=;'a';&&;current;<=;'z')){CFlag;=;IsEnglish;;//;如果是英文字母,标志设为0}else;if((current;>=0&¤t<=;64)

6、

7、(current;>=91&¤t<=;96)

8、

9、(current;>=123&¤t<=;127))//如果是数字则和它的前一个字

10、母的标志一样{if(PFlag==IsEnglish)CFlag=IsEnglish;//英文标志elseCFlag=IsChinese;//中文标志}else{CFlag;=;IsChinese;//中文标志}if;(CFlag;==;PFlag);//若当前标志与前一个字母标志相同则个数增一iCount++;else;{;if;(iCount!=0);//字符类型变化,读出前面的文本;{;if(PFlag==IsEnglish)SetVoice(szwEnglish);//将引擎设置成英文引擎else;Se

11、tVoice(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(szwEngli

12、sh);//将引擎设置成英文引擎else;SetVoice(szwChinese);//将引擎设置成中文引擎str;=;m_strTxt.Mid(first,length);//设置成同步朗读方式,将文本同步朗读出来hr;=;m_IpVoice->Speak(str.AllocSysString(),;0,;0;);===========转载请注明出处:南才北往=================本文由所有代码全由南才北往开发的转载请注明原作者名称==============转载请注明出处:南才北往=======

13、=======;②采用异步XML格式进行混合朗读:;将第二种方式与第一中方式相似,区别只是在于它是将文本进一步进行处理,最后生成符合XML朗读格式的文本后对文本进行朗读,而不是调用当标志发生改变时立即调用语音合成引擎进行朗读://设置XML起始标志strEngine.printf("",m_strZHEngine.c_str());strWord+=strEngine;for;(int;i;=;

14、1;;i;<=;nLength;;i++){......;if;(iCount!=0);//字符类型变化,进行文本处理{if(PFlag==IsChinese)//中文标志{//将中文朗读文本XML格式插入文本中strWord+="";strEngine.printf("",m_strZHEngine.c_st

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。