是否可以在不使用网络服务的情况下将语音转换为文本?我尝试了以下解决方案,但在eclipse http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207021(v=vs.105).aspx
中无法识别库我认为Windows 8 RT中必须有语音识别API?有没有人在这个平台上实现语音识别或指向正确的方向?
我猜这些方法在Windows 8 RT平台上不可用,如果有,还有其他选择吗?
我在应用栏按钮单击事件中尝试了以下操作,但没有识别任何方法/命名空间。
// Create an instance of SpeechRecognizerUI.
this.recoWithUI = new SpeechRecognizerUI();
// Start recognition (load the dictation grammar by default).
SpeechRecognitionUIResult recoResult = await recoWithUI.RecognizeWithUIAsync();
// Do something with the recognition result.
MessageBox.Show(string.Format("You said {0}.", recoResult.RecognitionResult.Text));
答案 0 :(得分:1)
看起来SpeechRecognitionUI
类适用于Windows Phone 8。
对于Windows 8 RT,Microsoft将The Bing Speech Recognition Control和the class称为SpeechRecognizerUx
。
Bing语音识别控件可启用
Windows 8
,Windows 8.1
, 或Windows RT
计算机将音频语音输入转换为书面文字。 它通过从麦克风接收音频数据,发送 音频数据到Web服务进行分析,然后返回其最佳状态 将用户语音解释为文本。
一个'警告'(如果你不想付钱)是这个requires a subscription到Windows Azure数据市场,虽然免费的东西是相当慷慨的IMO。
Bing语音识别控件仅适用于Visual 工作室画廊。使用Bing语音识别控件进行开发, 您必须首先订阅Windows Azure数据市场,并且 然后注册你的申请。订阅没有任何费用 每月前500,000次服务电话。
这是一个代码示例。
public MainPage()
{
this.InitializeComponent();
this.Loaded += MainPage_Loaded;
}
SpeechRecognizer SR;
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
// Apply credentials from the Windows Azure Data Marketplace.
var credentials = new SpeechAuthorizationParameters();
credentials.ClientId = "<YOUR CLIENT ID>";
credentials.ClientSecret = "<YOUR CLIENT SECRET>";
// Initialize the speech recognizer and attach to control.
SR = new SpeechRecognizer("en-US", credentials);
SpeechControl.SpeechRecognizer = SR;
}
private async void SpeakButton_Click(object sender, RoutedEventArgs e)
{
try
{
// Start speech recognition.
var result = await SR.RecognizeSpeechToTextAsync();
ResultText.Text = result.Text;
}
catch (System.Exception ex)
{
ResultText.Text = ex.Message;
}
}
来源: http://msdn.microsoft.com/en-us/library/dn434633.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-4