使用TTS,播放数字的时候,怎样才能读出普通话?

SuperRabbit 2011-03-15 12:46:11
我的数字从textbox.text取出来。
比如内容是:PT101,我希望读出来时 P,T,一,零,一。
但是读出来时PT one hundred one

如果我直接使用 Normal.Speak("PT101", SpeechVoiceSpeakFlags.SVSFlagsAsync) 倒没问题

但是 将PT101存放在某个 textbox.text里面,然后再使用如下语句:
Normal.Speak(textbox.text, SpeechVoiceSpeakFlags.SVSFlagsAsync)
出来的声音就是英文的,我不想这样。

另外,我多调用的TTS语音包是 girl xiao kun 是女声中文的。

因为刚刚上手VB,所以没办法来求助。我使用了将 textbox.text.toString 也是不行的 真郁闷
...全文
323 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dylike 2011-03-16
  • 打赏
  • 举报
回复
用更高版本的TTS引擎试试(至少要包含中文语音库)
Tosp2012 2011-03-16
  • 打赏
  • 举报
回复
另外,我多调用的TTS语音包是 girl xiao kun 是女声中文的。

應該是語言包出現了問題,更換語言包試試。

zzmjhy520 2011-03-15
  • 打赏
  • 举报
回复
我这个是用微软第三方控件DotNetSpeech.dll
以前在学校用C#语言写的,你改下就应该可以了
zzmjhy520 2011-03-15
  • 打赏
  • 举报
回复

SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice sp = new SpVoice();
sp.Speak(textBox1.Text, spFlags);
Console.Read();
SuperRabbit 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maco_wang 的回复:]

VB.NET code

Normal.Speak("PT101", SpeechVoiceSpeakFlags.SVSFlagsAsync)
Normal.Speak(textbox.text, SpeechVoiceSpeakFlags.SVSFlagsAsync)


单步调式一下textbox.text!="PT101"?
[/Quote]
谢谢,也不行。
只能
Normal.Speak(“PT101”, SpeechVoiceSpeakFlags.SVSFlagsAsync)
才能满足
但是这样 不能做到自动的内容识别
SuperRabbit 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 robake 的回复:]

VB.NET code

'试试这个
dim str as string=textbox.text
Normal.Speak(trim(str), SpeechVoiceSpeakFlags.SVSFlagsAsync)
[/Quote]

我试了一下 还是老样子 谢谢你的热心帮助
叶子 2011-03-15
  • 打赏
  • 举报
回复

Normal.Speak("PT101", SpeechVoiceSpeakFlags.SVSFlagsAsync)
Normal.Speak(textbox.text, SpeechVoiceSpeakFlags.SVSFlagsAsync)

单步调式一下textbox.text!="PT101"?
robake 2011-03-15
  • 打赏
  • 举报
回复

'试试这个
dim str as string=textbox.text
Normal.Speak(trim(str), SpeechVoiceSpeakFlags.SVSFlagsAsync)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧