Google Cloud Speech-to-Text

用于调用 Google Cloud Speech-to-Text gRPC API 并将音频转录为文本的类型化接口。

简介

Google Cloud Speech-to-Text 使用 Google 的语音识别模型将音频转换为文本。该 gRPC API 通过 google.cloud.speech.v1.Speech 服务公开,在 speech.googleapis.com:443 上通过 TLS 访问,主要方法是用于同步识别的 Recognize

请求通过 TsgcGRPCSpeechRecognizeRequest 构建,其中 Config 设置 Encoding、SampleRateHertz、LanguageCode 和 EnableAutomaticPunctuation,Audio.Uri 指向音频。响应在 TsgcGRPCSpeechRecognizeResponse 中返回,其 Results 包含带有 Transcript 和 Confidence 的 Alternatives。

下面的示例使用服务账户 JWT 进行身份验证,通过 TsgcHTTP2ClientTsgcGRPCClient 连接到 Speech 主机,设置授权 Bearer 元数据,并对存储于某个 gs:// URI 的 LINEAR16 16000 Hz en-US 音频流调用 Recognize


    oHTTP2 := TsgcHTTP2Client.Create(nil);
    oHTTP2.Host := 'speech.googleapis.com';
    oHTTP2.Port := 443;
    oHTTP2.TLS := True;

    oGRPC := TsgcGRPCClient.Create(nil);
    oGRPC.Client := oHTTP2;

    // service-account JWT authentication
    oGRPC.GoogleCloudOptions.JWT.KeyFile := 'service-account.json';
    oGRPC.GoogleCloudOptions.JWT.API_Endpoint := 'https://speech.googleapis.com/';
    oGRPC.DefaultMetadata.AddValue('authorization', 'Bearer ' + oGRPC.GoogleCloudOptions.JWT.Token);

    // build the typed request and call the method
    oRequest := TsgcGRPCSpeechRecognizeRequest.Create;
    try
      oRequest.Config.Encoding := 'LINEAR16';
      oRequest.Config.SampleRateHertz := 16000;
      oRequest.Config.LanguageCode := 'en-US';
      oRequest.Config.EnableAutomaticPunctuation := True;
      oRequest.Audio.Uri := 'gs://my-bucket/audio.wav';
      oResponse := oGRPC.Call('google.cloud.speech.v1.Speech', 'Recognize', oRequest.ToBytes);
      ShowMessage(oResponse.DataString);
    finally
      oRequest.Free;
    end;

方法

名称描述
Recognize执行同步语音识别:发送音频配置和音频数据,并返回带有置信度分数的转录文本。

演示

示例文件夹 Demos/21.GRPC/11.Speech_to_Text 中提供了一个可用的示例,演示如何使用 Recognize 方法进行身份验证并转录音频文件。

另请参阅