Google 云流语音 API

Google Cloud Streaming Speech API

我需要通过 Google Cloud Speech API 进行实时语音识别。然而,它仍处于测试版,互联网上没有太多有用的东西。

https://cloud.google.com/speech/docs/samples 这里提供的示例很少,但我没有看到使用 C# 流式传输 API,这是否意味着我不能使用 C# 将我的音频输入传输到 Google Cloud演讲API?

有人尝试使用 .NET 将音频输入流式传输到 Cloud Speech API 吗?

仅供参考,我无法使用 Google 提供的普通网络语音 API。我只需要使用 Goolge Cloud Speech API.

您必须从这里下载示例应用程序: https://cloud.google.com/speech/docs/samples

您将找到语音示例:快速入门和识别。

Recogize 有很多选项,Listen 就是其中之一。本示例为流式音频,并将结果连续写入控制台。

示例使用 protobuf 字节流进行流式传输。 这是代码的主要部分:

var credential = GoogleCredential.FromFile( "privatekey.json" ).CreateScoped( SpeechClient.DefaultScopes );
var channel = new Grpc.Core.Channel( SpeechClient.DefaultEndpoint.ToString(), credential.ToChannelCredentials() );
var speech = SpeechClient.Create( channel );
var streamingCall = speech.StreamingRecognize();
// Write the initial request with the config.
await streamingCall.WriteAsync(
    new StreamingRecognizeRequest()
    {
        StreamingConfig = new StreamingRecognitionConfig()
        {
            Config = new RecognitionConfig()
            {
                Encoding =
                RecognitionConfig.Types.AudioEncoding.Linear16,
                SampleRateHertz = 16000,
                LanguageCode = "hu",
            },
            InterimResults = true,
        }
    } );

当然要改语言了

然后必须流内容:

streamingCall.WriteAsync(
    new StreamingRecognizeRequest()
    {
        AudioContent = Google.Protobuf.ByteString
            .CopyFrom( args.Buffer, 0, args.BytesRecorded )
    } ).Wait();