Как преобразовать речь в текст? Windows 8 RT

Возможно ли преобразовать речь в текст без использования веб-службы? Я пробовал следующее решение, но библиотеки не распознаются в eclipse: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207021(v=vs.105).aspx

Я думаю, что должен быть API распознавания речи в Windows 8 RT? У кого-нибудь есть реализация распознавания речи на этой платформе или указываете мне правильное направление?

Я предполагаю, что эти методы недоступны на платформе 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 ответ

Решение

Похоже, SpeechRecognitionUI класс для Windows Phone 8.

Для Windows 8 RT у Microsoft есть элемент управления распознаванием речи Bing, и класс называется SpeechRecognizerUx,

Управление распознаванием речи Bing позволяет Windows 8, Windows 8.1, или же Windows RT машина для преобразования аудио речевого ввода в письменный текст. Он делает это, получая аудиоданные из микрофона, отправляя аудиоданные в веб-службу для анализа, а затем возвращая лучшие интерпретации речи пользователя в виде текста.

Единственное "предостережение" (если вы не хотите платить) заключается в том, что для этого требуется подписка на Windows Azure Data Marketplace, хотя бесплатные вещи - это довольно щедрое ИМО.

Элемент управления распознаванием речи Bing доступен только из галереи Visual Studio. Для разработки с помощью Bing Speech Recognition Control вы должны сначала подписаться на Windows Azure Data Marketplace, а затем зарегистрировать свое приложение. Нет подписки на первые 500000 звонков в месяц.

Вот пример кода.

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

Другие вопросы по тегам