如何将语音转换为文本? Windows 8 RT

时间:2014-02-04 18:23:56

标签: c# speech-to-text windows-rt

是否可以在不使用网络服务的情况下将语音转换为文本?我尝试了以下解决方案,但在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));

1 个答案:

答案 0 :(得分:1)

看起来SpeechRecognitionUI类适用于Windows Phone 8。

对于Windows 8 RT,Microsoft将The Bing Speech Recognition Controlthe class称为SpeechRecognizerUx

  

Bing语音识别控件可启用Windows 8Windows 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