【发布时间】: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