首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语音/语音转文本

语音/语音转文本
EN

Stack Overflow用户
提问于 2011-01-13 14:40:40
回答 6查看 45.1K关注 0票数 18

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

此外,我需要一个API或库,可以做文本到语音。

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

谢谢。

EN

回答 6

Stack Overflow用户

发布于 2011-01-13 15:28:38

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

票数 15
EN

Stack Overflow用户

发布于 2012-03-18 01:13:27

下面是一个使用C#和System.Speech将语音转换为文本的完整示例

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

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

第1步:配置SpeechRecognitionEngine

代码语言:javascript
复制
_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);

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

第2步:处理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/

票数 11
EN

Stack Overflow用户

发布于 2011-01-15 05:39:02

请参阅Using c++ to call and use Windows Speech Recognition

上面写着:

Microsoft为Windows的客户端和服务器版本提供语音识别引擎。两者都可以用C++或.NET语言编程。在C++中进行编程的传统应用编程接口称为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版本的完整.NET可以在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4上获得。语音引擎是免费下载的。

许多早期的问题都解决了这个问题。有关示例,请参阅Prototype based on speech recognitiongetting started with speech recognition and speech synthesisSAPI and Windows 7 Problem

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4677471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档