
功能:
进行文文本阅读阅读语音输WAV音频实现平台:
Microsoft Visual Studio 2005
微软TTS5.1语音引擎(文)所需要东西:
用TlbImpSAPI.51 SDK导DotNetSpeech.dll(160K)
微软TTS5.1语音引擎(文).msi(1.55M)两东西由于关系没传需要留邮箱址自安装SAPI.51 SDK使用命令自导DotNetSpeech.dll
Tlbimp sapi.dll /out: DotNetSpeech.dll(现错误用管影响使用)
安装微软TTS5.1语音引擎(文).msi打"控制面板"打"语音"配置项目"文字-语音转换""语音选择"组合框选择"Microsoft Simplified Chinese"才读文要读英文要选择"Microsoft Sam"
使用Microsoft Visual Studio 2005新建项目添加引用引用DotNetSpeech.dll
命名空间:
using DotNetSpeech读文本框文:
SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync
SpVoice voice = new SpVoice()
voice.Speak(textBox1.Text, spFlags)文本框文读音保存WAV文件:
SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync
SpVoice voice = new SpVoice()
SaveFileDialog dialog = new SaveFileDialog()
dialog.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav"
dialog.Title = "保存WAV文件"
dialog.FilterIndex = 2
dialog.RestoreDirectory = true
if (dialog.ShowDialog() == DialogResult.OK)
{
SpeechStreamFileMode spFileMode = SpeechStreamFileMode.SSFMCreateForWrite
SpFileStream spFileStream = new SpFileStream()
spFileStream.Open(dialog.FileName, spFileMode, false)
voice.AudioOutputStream = spFileStream
voice.Speak(textBox1.Text, spFlags)
voice.WaitUntilDone(1000)
面两句定要写否则产文件没声音
WaitUntilDone面smTimeoutint型
spFileStream.Close()参考我现用进行实语音播放我代码基本SpVoice aSpVoice = new SpVoice()…… private void VieoStr(string Vieo)
{
string iVoiceStr = ChLStr(Vieo)
while (aSpVoice.Status.RunningState != SpeechRunState.SRSEDone)
{
Thread.Sleep(100)
} if (aSpVoice.Status.RunningState == SpeechRunState.SRSEDone)
{
aSpVoice.Speak(iVoiceStr, SpeechVoiceSpeakFlags.SVSFIsXML | SpeechVoiceSpeakFlags.SVSFlagsAsync)
}
} 点要说明微软语音库能读文字非限且读东西比较硬楼主高端应用建议使用案楼主解 科讯飞 语音产品我解公司产品读东西比微软
看你用c#还是c++了其实都是一样的,都是调用微软系统里面的一个COM组件,当然你得先安装语音识别引擎,这一点只针对XP系统,如果你是vista或者seven系统,只要不是精简的,就有这个SAPI。在控制面板里面可以找到。
具体的代码思想好像是先初始化引擎,加入常用词语作为语法库,然后会优先从你自定义的语法库中找,找不到,就会到share那个库,那个库就是所有单词短语的集合,那一般就不准了。所以预先知道你要识别的内容很关键!
你可以到codeproject里面搜索speech recogintion,国内资料很少。那个网站上源码很多的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)