语音/语音到文本

我需要一个API或库(最好是免费的),它将通过麦克风将语音/语音转换为文本(字符串)。

另外,我需要一个可以进行文本到语音转换的API或库。

我想使用C#和.NET,但其他语言就足够了。

谢谢。

您可以使用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

更新:

这个post也有一些很好的参考:

C#语音识别 – 这是用户所说的吗?

以下是使用C#和System.Speech从语音转换为文本的完整示例

代码可分为两个主要部分:

配置处理SpeechRecognized和SpeechHypothesized事件的SpeechRecognitionEngine对象(及其所需元素)。

第1步:配置SpeechRecognitionEngine

_speechRecognitionEngine = new SpeechRecognitionEngine(); _speechRecognitionEngine.SetInputToDefaultAudioDevice(); _dictationGrammar = new DictationGrammar(); _speechRecognitionEngine.LoadGrammar(_dictationGrammar); _speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple); 

此时,您的对象已准备好开始从麦克风转录音频。 但是,您需要处理某些事件,以便实际访问结果。

第2步:处理SpeechRecognitionEngine事件

_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/

请参阅使用c ++调用和使用Windows语音识别

哪个说:

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 。 语音引擎是免费下载的。

很多早期的问题已经解决了这个问题。 请参阅基于语音识别的原型 ,语音识别和语音合成入门 ,以及SAPI和Windows 7问题的示例。

对于文本到语音转换,您必须遵循3个步骤:

1.添加System.Speech参考。

2.添加标题:

使用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开放,请检查此项

每个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;