繁体   English   中英

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

[英]I want to convert c# speech to text console app into winform

我有这个 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 或复选框控件时不需要帮助:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM