用于调用 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 进行身份验证,通过 TsgcHTTP2Client 将 TsgcGRPCClient 连接到 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 方法进行身份验证并转录音频文件。