У меня есть консольное приложение C #, которое использует лазурную речь в текстовый сервис и преобразует речь, взятую с микрофонного входа, в текст. Я хочу преобразовать его в 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();
}
}
}