不解,MS的TTS怎么解决中文多音字的问题呢?

几罗星人 2012-10-27 11:52:47
我做了个最简单的TTS发音如下代码:

Dim a As Integer
Dim SP As New SpVoice '创建朗读对象

Private Sub Command1_Click()
SP.Rate = -2
SP.Speak Text1.Text, 1 '朗读
End Sub

别看了,这就是完整代码,试着玩而已。在Text1.Text中输入如下文段,命其朗读,遂出误音,甚为蛋疼。

……年长色衰,委身为贾(gǔ,商贾)人妇。遂命酒,使快弹数曲(qǔ,乐曲)。曲罢悯然,自叙少小时欢乐事,今漂沦憔悴,转徙于江湖间。……

明明是gǔ,商贾,却读成jiǎ数曲,歌曲嘛,却读成qū,特曲喝多了吧??如果他没办法那么智能,自动修正过来,就没办法人为设置某一个字的读音,让他别读错嘛?
...全文
1681 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2012-10-30
  • 打赏
  • 举报
回复
晕啊,有代码,没有耳机,不知道他念的是什么哦....
c_cyd2008 2012-10-28
  • 打赏
  • 举报
回复
一个好的语音包可以解决大多数问题,少量的使用XML标签注音,示例:

Text1.Text = "<pron sym='jia 3'> 贾</pron>宝玉,商<pron sym='gu 3'>贾</pron>"
SP.Speak Text1.Text, SVSFlagsAsync Or SVSFIsXML
  • 打赏
  • 举报
回复
换一个好的语音包就行了,微软自带的TTS才多大,根本没有考虑对多音字建立一个词库(要处理多音字,这是必须的),而一些强大的语音包都至少是几百M,不仅含有质量更高的发音,也含有丰富的词库,可以根据词组自动处理大多数常见的多音字.
c_cyd2008 2012-10-28
  • 打赏
  • 举报
回复
给文本加上xml标签,可以控制读音、语速、音调、读法等等,不过加这些标签够烦的,有兴趣的话Baidu一下“xml tts”

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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