我需要一个API或库(最好是免费的),它将通过麦克风将语音/语音转换为文本(字符串) .
另外,我需要一个可以进行文本到语音转换的API或库 .
我想使用C#和.NET,但其他语言就足够了 .
谢谢 .
每个Windows操作系统中都有一个用于Text2Speach的内置DLL . 你会在c:\ Programs \ Shared Folders \ Microsoft Shared \ Speech \ sapi.dll(sAPI - speach api)中找到相应的dll - 我不太确定路径 - 但无论如何你可以搜索sapi.dll .
之后,您可以使用以下代码段
SpVoice oVoice = new SpVoice(); oVoice.Voice = oVoice.GetVoices("","").Item(0); // 0 indicating what kind of speaker you want oVoice.Volume = 50; oVoice.Speak("hello world", SpeechVoiceSpeakFlags.SVSFDefault); oVoice = null;
您可以使用CMU Sphinx,因为它是非常开放和可扩展的解决方案,我认为它可以在客户端和服务器端使用:
http://cmusphinx.sourceforge.net/
如果您正在寻找Microsoft桌面解决方案,那么您可以使用SAPI:
http://msdn.microsoft.com/en-us/magazine/cc163663.aspx
在服务器端,您可以使用Microsoft统一通信,但也要考虑许可:
http://www.microsoft.com/uc/en/gb/default.aspx
更新:
这个帖子也有一些很好的参考:
C# Speech Recognition - Is this what the user said?
以下是使用C#和System.Speech从语音转换为文本的完整示例
代码可分为两个主要部分:
配置处理SpeechRecognized和SpeechHypothesized事件的SpeechRecognitionEngine对象(及其所需元素) .
Step 1: Configuring the SpeechRecognitionEngine
_speechRecognitionEngine = new SpeechRecognitionEngine(); _speechRecognitionEngine.SetInputToDefaultAudioDevice(); _dictationGrammar = new DictationGrammar(); _speechRecognitionEngine.LoadGrammar(_dictationGrammar); _speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
此时,您的对象已准备好开始从麦克风转录音频 . 但是,您需要处理某些事件,以便实际访问结果 .
Step 2: Handling the SpeechRecognitionEngine Events
_speechRecognitionEngine.SpeechRecognized - = new EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized - = new EventHandler(SpeechHypothesizing); _speechRecognitionEngine.SpeechRecognized = new EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized = new EventHandler(SpeechHypothesizing); private void SpeechHypothesizing(object sender,SpeechHypothesizedEventArgs e){///来自引擎字符串的实时结果realTimeResults = e.Result.Text; } private void SpeechRecognized(object sender,SpeechRecognizedEventArgs e){///来自引擎字符串finalAnswer = e.Result.Text的最终答案; }
而已 . 如果您想使用预先录制的.wav文件而不是麦克风,则可以使用
_speechRecognitionEngine.SetInputToWaveFile(pathToTargetWavFile);
代替
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
这些课程中有许多不同的选项,值得更详细地探讨 .
http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/
见Using c++ to call and use Windows Speech Recognition
哪个说:
Microsoft为Windows的客户端和服务器版本提供语音识别引擎 . 两者都可以用C语言或.NET语言编程 . 用C编程的传统API称为SAPI . 客户端和服务器语音的.NET框架名称是System.Speech和Microsoft.Speech .
SAPI文档 - http://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx
用于客户端识别的.NET命名空间是System.Speech - http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx . Windows Vista和7包括语音引擎 .
用于服务器识别的.NET命名空间是Microsoft.Speech,10.2版本的完整SDK可在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4获得 . 语音引擎是免费下载的 .
很多早期的问题都解决了这个问题 . 有关示例,请参见Prototype based on speech recognition,getting started with speech recognition and speech synthesis和SAPI and Windows 7 Problem .
对于文本到语音转换,您必须遵循3个步骤:
1.添加System.Speech参考 .
2.添加 Headers :
使用System.Speech;
使用System.Speech.Synthesis;
3.添加以下代码,其中textBox1是文本框的默认名称 .
SpeechSynthesizer speaker = new SpeechSynthesizer(); speaker.Rate = 1; speaker.Volume = 100; speaker.Speak(textBox1.Text);
I'd like to use C# and .NET, but other languages will suffice. 如果您对 C++ Festival开放,请选中此项
I'd like to use C# and .NET, but other languages will suffice.
C++
6 回答
每个Windows操作系统中都有一个用于Text2Speach的内置DLL . 你会在c:\ Programs \ Shared Folders \ Microsoft Shared \ Speech \ sapi.dll(sAPI - speach api)中找到相应的dll - 我不太确定路径 - 但无论如何你可以搜索sapi.dll .
之后,您可以使用以下代码段
您可以使用CMU Sphinx,因为它是非常开放和可扩展的解决方案,我认为它可以在客户端和服务器端使用:
http://cmusphinx.sourceforge.net/
如果您正在寻找Microsoft桌面解决方案,那么您可以使用SAPI:
http://msdn.microsoft.com/en-us/magazine/cc163663.aspx
在服务器端,您可以使用Microsoft统一通信,但也要考虑许可:
http://www.microsoft.com/uc/en/gb/default.aspx
更新:
这个帖子也有一些很好的参考:
C# Speech Recognition - Is this what the user said?
以下是使用C#和System.Speech从语音转换为文本的完整示例
代码可分为两个主要部分:
配置处理SpeechRecognized和SpeechHypothesized事件的SpeechRecognitionEngine对象(及其所需元素) .
Step 1: Configuring the SpeechRecognitionEngine
此时,您的对象已准备好开始从麦克风转录音频 . 但是,您需要处理某些事件,以便实际访问结果 .
Step 2: Handling the SpeechRecognitionEngine Events
而已 . 如果您想使用预先录制的.wav文件而不是麦克风,则可以使用
代替
这些课程中有许多不同的选项,值得更详细地探讨 .
http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/
见Using c++ to call and use Windows Speech Recognition
哪个说:
Microsoft为Windows的客户端和服务器版本提供语音识别引擎 . 两者都可以用C语言或.NET语言编程 . 用C编程的传统API称为SAPI . 客户端和服务器语音的.NET框架名称是System.Speech和Microsoft.Speech .
SAPI文档 - http://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx
用于客户端识别的.NET命名空间是System.Speech - http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx . Windows Vista和7包括语音引擎 .
用于服务器识别的.NET命名空间是Microsoft.Speech,10.2版本的完整SDK可在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4获得 . 语音引擎是免费下载的 .
很多早期的问题都解决了这个问题 . 有关示例,请参见Prototype based on speech recognition,getting started with speech recognition and speech synthesis和SAPI and Windows 7 Problem .
对于文本到语音转换,您必须遵循3个步骤:
1.添加System.Speech参考 .
2.添加 Headers :
使用System.Speech;
使用System.Speech.Synthesis;
3.添加以下代码,其中textBox1是文本框的默认名称 .
I'd like to use C# and .NET, but other languages will suffice.
如果您对C++
Festival开放,请选中此项