程序中的语音实现-创新互联
如果在程序中播放语音,该怎么实现呢?(下需代码是在VS2012中实现)
为京口等地区用户提供了全套网页设计制作服务,及京口网站建设行业解决方案。主营业务为成都做网站、网站制作、京口网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!第一个我想到的是用语音文件,可以引用播放器插件到应用中,再调用这些插件的API来实现。
首先创建一个控制台应用,在解决方案中添加引用,选中com选项,找到Windows Media Player,然后添加到引用中,在引用中,这个插件的命名空间是WMPLib。接下来就可以用这个插件来实现语音的播放了。
选来引用加入的命名空间:
using WMPLib;
然后在Main方法中写入
WindowsMediaPlayer player = newWindowsMediaPlayer();//实例化播放器类型
player.URL = "F:/test/a.wma";//把语音文件路径赋给播放器
Console.Read();//暂停程序,不至于退出
用播放器插件实现起来非常简单,其实插件功能还很强大,可能理进一步研究player的成员。
第二个,用vbs脚本文件,首先创建一个记事本文件,打开记事本,在里面写入下面代码:
CreateObject("SAPI.SpVoice").Speak"测试语音文件.",然后保存并把扩展名改为.vbs,这时,文件的图标就发生了变化,然后双击该vbs文件,就会听到语音朗读。
这好像与程序无关,不急,接下来要在C#中,利用IO来处理该文件,并实现对他的调用。
先引入命名空间
using System.IO;
然后生成并调用脚本代码如下:
string path = @"F:/test/a.vbs";//定义脚本路径
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"{0}\"";//定议脚本内容框架
content= string.Format(content, "你好,这是一段测试语音!");//合并生成脚本内容
File.WriteAllText(path,content,Encoding.Default);//把内容写入脚本文件
Process.Start(path);//调用脚本文件
用机器去读语音,是个好主意,但还要生成脚本文件,就显的有些业余了,有没有不生成语音文件的呢,那就是第三种情况。
第三种,用微软的Speech Platform
要开发Microsoft Speech Platform应用,首先要整理好开发环境
需要下载四个文件
1、SpeechPlatformRuntime.msi
2、MSSpeech_TTS_zh-CN_HuiHui.msi
3、MSSpeech_SR_zh-CN_TELE.msi
4、MicrosoftSpeechPlatformSDK.msi
文件1的下载地址为:http://www.microsoft.com/en-us/download/details.aspx?id=27225
文件2和3的下载地址为:http://www.microsoft.com/en-us/download/details.aspx?id=27224
文件4的下载地址为:http://www.microsoft.com/en-us/download/details.aspx?id=27226
这些文件有x86,有64位的,要依自己的OS而定。
下载安装完这些文件后,可以在解决方案中引用安装的SDK,默认安装在C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly\ Microsoft.Speech.dll(要依据系统的路径确定根目录)
在代码中引用命名空间
usingMicrosoft.Speech.Synthesis;
实现播放语音代码如下:
SpeechSynthesizer ss = newSpeechSynthesizer();//实例化播放语音类型
ss.SetOutputToDefaultAudioDevice();//设置播放语音设备,为当前默认
ss.Volume= 10;//设置音量
ss.Speak("这是一个测试语音!");//读语音
这样就实现了简单的语音而不产生语音文件
后两种基实都是利用了微软的TTS功能来实现的,第三种更为专业一些。
下面简单比较几种方式的优缺点:
播放器插件 | vbs | Speech Platform | |
优点 | 音质效果好,和语音文件相关。 使用简单。 | 只需要录入语音文字就可以,语音信息灵活 不需要安装文件 | 不需要或产生任何文件 语音功能更强大 |
缺点 | 需要录制语音,不灵活。 | 音质死板,单调 需要生成脚本文件 | 音质死板,单调 需要安装包 |
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
本文题目:程序中的语音实现-创新互联
分享链接:http://cdiso.cn/article/cojdpj.html