SQL*_*son 8 audio text-to-speech windows-7
我在SuperUser上问了这个问题,但它被置若罔闻.希望我能在这里获得更多的观众.
我正在寻找像ScriptVox这样的低成本(或免费)解决方案,只有更好的引擎.也就是说,读入脚本并将字符分配给语音.我已经阅读了这里的帖子,但即使是那些我必须连接wav文件.并不是我不喜欢Audacity,而是耗费时间.我正在考虑写自己的,但我确信必须有一个解决方案.有什么建议?
Bra*_*rad 10
我会使用微软的文字转语音引擎.他们有一个简单的例子来说明如何正确地找到你想要的东西:
http://msdn.microsoft.com/en-us/library/ms717065(v=vs.85).aspx
使用该示例代码,您可以说一些文本并将其转储到WAV文件中.从那里,如果您需要转换为MP3格式,您可以使用FFMPEG.
布拉德的答案非常棒,因为它包含了你正在寻找的东西.然而,它缺少一个你在问题勘误中表达偏好的基础:C#中的一个实现.
这是一个完整的教程,可以在托管代码中访问Speech API.由于Blake Niemyjski和微软的相应团队都给予了充分的信任,这里有一些重要的部分,因为原始文章的链接已经死了,这似乎是直接从微软借来的:
以下链接(Giving Computers a Voice)将引导您访问Microsoft网站,该网站将向您展示如何创建项目并立即在VB .Net或c#中启动和运行基本的文本到语音应用程序!
SAPI
SAPI是语音API,使应用程序可以访问语音识别和文本到语音(TTS)引擎.本文重点介绍TTS.对于TTS,SAPI将文本作为输入,并使用TTS引擎将该文本输出为语音.这与Windows辅助功能工具Narrator使用的技术相同.自XP以来,每个版本的Windows都附带了SAPI和英语TTS引擎.
TTS让用户的耳朵发挥作用.它允许应用程序向用户发送信息,而无需用户的眼睛或手.这是一个非常强大的输出选项,通常不会在PC上使用.
在托管应用程序中使用TTS需要三个步骤:
- 创建一个互操作DLL
由于SAPI是COM组件,因此需要使用互操作DLL从托管应用程序中使用它.要创建它,请在Visual Studio中打开该项目.选择Project菜单,然后单击Add Reference.选择COM选项卡,在列表中选择"Microsoft Speech Object Library",然后单击"确定".这些步骤将此引用添加到您的项目,并在与可执行文件相同的文件夹中创建Interop.SpeechLib.dll.此互操作DLL必须始终与.exe相同的文件夹才能正常工作.
- 引用interop命名空间
在您的应用程序中包含此命名空间.在C#中,添加"using SpeechLib;"; 在VB中,添加"Imports SpeechLib".
- 叫说话()
创建一个SpVoice对象并调用Speak():
Visual C#
Run Code Online (Sandbox Code Playgroud)SpVoice voice = new SpVoice(); voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault);Visual Basic
Run Code Online (Sandbox Code Playgroud)voice = New SpVoice voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault)
我觉得布拉德的回答让我在这里得到了正确的解决方案(因此,他比我更值得信任),但这应该是你失踪的最后一件事.您现在应该能够在托管代码中复制C++解决方案中的WAV文件,并从那里转码为您想要的格式.
| 归档时间: |
|
| 查看次数: |
6849 次 |
| 最近记录: |