【问题标题】:I want to convert c# speech to text console app into winform我想将 c# 语音转换为文本控制台应用程序到 winform
【发布时间】:2019-10-20 18:38:27
【问题描述】:

我有这个 C# 控制台应用程序,它使用 azure 语音到文本服务并将从麦克风输入获取的语音转换为文本。我想把它转换成一个winform,它有一个用于语音开/关的复选框,语音被写入一个文本框。有谁知道我该怎么做?

C#代码

using System;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;

namespace STT
{
    class Program
    {
        public static async Task SpeechContinuousRecognitionAsync()
        {
            // Creates an instance of a speech config with specified subscription key and service region.
            // Replace with your own subscription key and service region (e.g., "westus").
            var config = SpeechConfig.FromSubscription("api key", "westus");

            // Creates a speech recognizer from microphone.
            using (var recognizer = new SpeechRecognizer(config))
            {
                // Subscribes to events.
                recognizer.Recognizing += (s, e) => {
                    Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}");
                };

                recognizer.Recognized += (s, e) => {
                    var result = e.Result;
                    Console.WriteLine($"Reason: {result.Reason.ToString()}");
                    if (result.Reason == ResultReason.RecognizedSpeech)
                    {
                        Console.WriteLine($"Final result: Text: {result.Text}.");
                    }
                };

                recognizer.Canceled += (s, e) => {
                    Console.WriteLine($"\n    Recognition Canceled. Reason: {e.Reason.ToString()}, CanceledReason: {e.Reason}");
                };

                recognizer.SessionStarted += (s, e) => {
                    Console.WriteLine("\n    Session started event.");
                };

                recognizer.SessionStopped += (s, e) => {
                    Console.WriteLine("\n    Session stopped event.");
                };

                // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition.
                await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(true);

                do
                {
                    Console.WriteLine("Press Enter to stop");
                } while (Console.ReadKey().Key != ConsoleKey.Enter);

                // Stops recognition.
                await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false);
            }
        }


        static void Main()
        {
        SpeechContinuousRecognitionAsync().Wait();

        }
    }
}

【问题讨论】:

    标签: c# .net winforms azure speech-to-text


    【解决方案1】:

    假设您在创建 winform 或复选框控件时不需要帮助:

    1. 删除所有控制台读写
    2. 将 SpeechContinuousRecognitionAsync().Wait() 语句放入表单的 Load 事件处理程序中
    3. 将启动和停止识别的逻辑移至复选框的 CheckedChange 事件处理程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      相关资源
      最近更新 更多