c# - 学习 C# 并尝试解决错误
问题描述
我希望能够使用 MS 语音 SDK 将语音转录为文本。我从 Microsoft 文档中获得了这个示例,但是当我尝试构建解决方案时,它给了我错误“程序不包含适合入口点的静态'main' 方法”。
我究竟做错了什么?我应该怎么做才能让它工作?
using System;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
namespace SpeechToText
{
class Program
{
static async Task Main(string[] args)
{
// 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("5626c4797ab3c6d061b8", "Werope");
var stopRecognition = new TaskCompletionSource<int>();
// Creates a speech recognizer using file as audio input.
// Replace with your own audio file name.
using (var audioInput = AudioConfig.FromWavFileInput(@"whatstheweatherlike.wav"))
{
using (var recognizer = new SpeechRecognizer(config, audioInput))
{
// Subscribes to events.
recognizer.Recognizing += (s, e) =>
{
Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}");
};
recognizer.Recognized += (s, e) =>
{
if (e.Result.Reason == ResultReason.RecognizedSpeech)
{
Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}");
}
else if (e.Result.Reason == ResultReason.NoMatch)
{
Console.WriteLine($"NOMATCH: Speech could not be recognized.");
}
};
recognizer.Canceled += (s, e) =>
{
Console.WriteLine($"CANCELED: Reason={e.Reason}");
if (e.Reason == CancellationReason.Error)
{
Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}");
Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}");
Console.WriteLine($"CANCELED: Did you update the subscription info?");
}
stopRecognition.TrySetResult(0);
};
recognizer.SessionStarted += (s, e) =>
{
Console.WriteLine("\n Session started event.");
};
recognizer.SessionStopped += (s, e) =>
{
Console.WriteLine("\n Session stopped event.");
Console.WriteLine("\nStop recognition.");
stopRecognition.TrySetResult(0);
};
// Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition.
await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false);
// Waits for completion.
// Use Task.WaitAny to keep the task rooted.
Task.WaitAny(new[] { stopRecognition.Task });
// Stops recognition.
await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false);
}
}
}
}
}
解决方案
推荐阅读
- java - 如何正确设置GridView?
- c# - 与物体碰撞时如何制作透明文本?
- regex - 将带有字符串键/值的文件转换为 Go 映射
- javascript - 如何使用javascript对数组中的emp名称列表进行排序
- git - 无法提交更新的 jar 文件
- java - 如何在 selenium 中为名为 onclick 的标签编写 xpath
- java - 使用 Single 过滤
- c# - ExecuteScalar 需要一个开放且可用的连接。连接的当前状态为关闭
- r - 创建 ggplot2 图表,其 y 刻度从零和美元格式开始
- php - 如何使用 PHP 和 MySQLI 按相关性排序结果?