• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

SAPI5.1语音合成和语音识别[C#][1]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

翻译源:Speech Synthesis & Speech Recognition Using SAPI 5.1 By Brian Long (http://www.blong.com/)

翻译说明:并不全文翻译,只翻译些对本人有用的部分,原版代码为Delphi,译文用C# .NET Framework 2.0
实现,有些有关Delphi的解释略去,另添加一些C#使用SAPI的个人理解注释,不定期更新

[1]语音合成

在简单层面上实现语音合成,只需要创建SpVoiceClass对象并调用其中的Speak方法,最简单的实现如下[读出文本框中的文字]

        private void button1_Click(object sender, EventArgs e)
...

[Tachikoma注:此处并未提到编程时添加对SAPI的引用,对COM组件的引用较简单,请自行处理]

对Speak方法的参数作如下说明:

0]对Speak方法的调用默认情况下将会是同步的,也就是说在朗读完指定文字之前不会返回值[同步/异步状态可用第二参数调整]

0]Speak方法返回一个流标号,当存在多个异步声音流时可通过标号识别,标号可作为参数提供给某些函数

1]第一个参数为要阅读的文字

2]第二参数为可调节的一些参数[Flags],可用"或"运算符将其连接同时使用

# SVSFDefault  [该方法将同步阅读][具体见说明0]]
# SVSFlagAsync [该方法将异步阅读,调用后将立即返回,可通过事件监视朗读结束时间,或调用
WaitUntilDone 方法,或通过SpeakCompleteEvent 得到一个事件句柄并提供给WaitForSingleObject]
# SVSFPurgeBeforeSpeak  所有朗读中的和待朗读的字符都将被取消
# SVSFNLPSpeakPunc 标点将被阅读出来

# SVSFIsFilename 标明第一个参数为要朗读文本所在的文件名

# SVSFIsXML  标明文本中含有XML标签,用于控制朗读的音量\频率等参数,示例

<EMPH>Hello</EMPH>
<PRON SYM="d eh l f y">Delphi</PRON> developers!
<VOLUME LEVEL="70">
I can speak 
<PITCH MIDDLE="+10">high</PITCH> and <PITCH MIDDLE="-10">low</PITCH>.
I can speak 
<RATE SPEED="+10">very quickly</RATE> and <RATE SPEED="-10">very slowly</RATE>.
I can speak 
<VOLUME LEVEL="40">quietly</VOLUME> and <VOLUME LEVEL="100">loudly</VOLUME>.
</VOLUME>


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
tolua++实现lua层调用c++技术分析发布时间:2022-07-14
下一篇:
C#单例测试(懒汉式双锁保证线程安全)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap