本页面介绍了如何使用 Speech-to-Text 转写包含多个通道的音频文件。多通道识别适用于 Speech-to-Text 支持的大多数(但不是全部)音频编码。如需了解每种编码类型的音频文件中识别出的通道数量,请参阅 audioChannelCount。
通常情况下,对于录音中出现的每名讲话人,音频数据都会包含一个对应的通道。例如,通过电话交谈的两个人的音频可能包含两个通道,分别记录通话双方的线路。
要转录包含多个通道的音频数据,您必须在发送给 Speech-to-Text API 的请求中提供通道数量。在您的请求中,将 audioChannelCount 字段设置为音频中的通道数量即可。
在您发送包含多个通道的请求后,Speech-to-Text 会向您返回标识音频中不同通道的结果,并使用 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
如需了解如何安装和使用 Speech-to-Text 客户端库,请参阅 Speech-to-Text 客户端库。 如需了解详情,请参阅 Speech-to-Text Go API 参考文档。
如需向 Speech-to-Text 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Speech-to-Text 客户端库,请参阅 Speech-to-Text 客户端库。 如需了解详情,请参阅 Speech-to-Text Java API 参考文档。
如需向 Speech-to-Text 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Speech-to-Text 客户端库,请参阅 Speech-to-Text 客户端库。 如需了解详情,请参阅 Speech-to-Text Node.js API 参考文档。
如需向 Speech-to-Text 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Speech-to-Text 客户端库,请参阅 Speech-to-Text 客户端库。 如需了解详情,请参阅 Speech-to-Text Python API 参考文档。
如需向 Speech-to-Text 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
其他语言
C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 Speech-to-Text 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 Speech-to-Text 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 Speech-to-Text 参考文档。