我想将c#语音到文本控制台应用程序转换为winform

我想将c#语音到文本控制台应用程序转换为winform,c#,.net,winforms,azure,speech-to-text,C#,.net,Winforms,Azure,Speech To Text,我有一个C#控制台应用程序,它使用azure语音到文本服务,将麦克风输入的语音转换为文本。我想把它转换成一个winform,其中有一个语音开/关复选框,语音被写入一个文本框。有人知道我怎么做吗 C#代码 using System; using System.Threading.Tasks; using Microsoft.CognitiveServices.Speech; namespace STT { class Program { public static

我有一个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();

        }
    }
}

假设在创建winform或checkbox控件时不需要帮助:

  • 删除所有控制台读写操作
  • 将SpeechContinuousRecognitionAsync().Wait()语句放入表单的加载事件处理程序中
  • 将启动和停止识别的逻辑移动到复选框的CheckedChange事件处理程序