本页面介绍了如何使用 Cloud Speech-to-Text 转写包含多个通道的音频文件。多通道识别适用于 Cloud STT 支持的大部分音频编码,但并非全部支持。如需了解每种编码类型的音频文件中识别出的通道数量,请参阅 audioChannelCount。
通常情况下,对于录音中出现的每名讲话人,音频数据都会包含一个对应的通道。例如,通过电话交谈的两个人的音频可能包含两个通道,分别记录通话双方的线路。
要转写包含多个通道的音频数据,您必须在发送给 Cloud Speech-to-Text API 的请求中提供通道数量。在您的请求中,将 audioChannelCount 字段设置为音频中的通道数量即可。
在您发送包含多个通道的请求后,Cloud STT 会向您返回标识音频中不同通道的结果,并使用 channelTag 字段标记每个结果的替代项。
以下代码示例展示了如何转写包含多个通道的音频。
协议
如需了解完整的详细信息,请参阅 speech:recognize API 端点。
如需执行同步语音识别,请发出 POST 请求并提供相应的请求正文。以下示例展示了一个使用 curl 发出的 POST 请求。该示例使用 Google Cloud CLI 生成访问令牌。如需了解如何安装 gcloud CLI,请参阅快速入门。
以下示例展示了如何使用 curl 发送 POST 请求,其中请求正文指定了音频样本上存在的通道数量。
curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "config": { "encoding": "LINEAR16", "languageCode": "en-US", "audioChannelCount": 2, "enableSeparateRecognitionPerChannel": true }, "audio": { "uri": "gs://cloud-samples-tests/speech/commercial_stereo.wav" } }' "https://speech.googleapis.com/v1/speech:recognize" > multi-channel.txt
如果请求成功,服务器将返回一个 200 OK HTTP 状态代码以及 JSON 格式的响应(该响应会保存到名为 multi-channel.json 的文件中)。
{
"results": [
{
"alternatives": [
{
"transcript": "hi I'd like to buy a Chromecast I'm always wondering whether you could help me with that",
"confidence": 0.8991147
}
],
"channelTag": 1,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": "certainly which color would you like we have blue black and red",
"confidence": 0.9408236
}
],
"channelTag": 2,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " let's go with the black one",
"confidence": 0.98783094
}
],
"channelTag": 1,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " would you like the new Chromecast Ultra model or the regular Chromecast",
"confidence": 0.9573053
}
],
"channelTag": 2,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " regular Chromecast is fine thank you",
"confidence": 0.9671048
}
],
"channelTag": 1,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " okay sure would you like to ship it regular or Express",
"confidence": 0.9544821
}
],
"channelTag": 2,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " express please",
"confidence": 0.9487205
}
],
"channelTag": 1,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " terrific it's on the way thank you",
"confidence": 0.97655964
}
],
"channelTag": 2,
"languageCode": "en-us"
},
{
"alternatives": [
{
"transcript": " thank you very much bye",
"confidence": 0.9735077
}
],
"channelTag": 1,
"languageCode": "en-us"
}
]
}
Go
如需了解如何安装和使用 Cloud STT 客户端库,请参阅 Cloud STT 客户端库。如需了解详情,请参阅 Cloud STT Go API 参考文档。
如需向 Cloud STT 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Cloud STT 客户端库,请参阅 Cloud STT 客户端库。如需了解详情,请参阅 Cloud STT Java API 参考文档。
如需向 Cloud STT 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Cloud STT 客户端库,请参阅 Cloud STT 客户端库。如需了解详情,请参阅 Cloud STT Node.js API 参考文档。
如需向 Cloud STT 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Cloud STT 客户端库,请参阅 Cloud STT 客户端库。如需了解详情,请参阅 Cloud STT Python API 参考文档。
如需向 Cloud STT 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 Cloud STT 参考文档。
PHP: 请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 Cloud STT 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 Cloud STT 参考文档。