我尝试发送 POST 请求至https://speech.googleapis.com/v1/speech:recognize使用 JSON 和下面的代码片段。不知何故,谷歌回应说无法解码我的请求中的 Base 64。
{
“配置”:{
“编码”:“LINEAR16”,
“采样率赫兹”:16000,
"语言代码": "ja-JP",
“最大替代品”:5,
“亵渎过滤器”:假
},
“声音的”: {
“内容”:“ZXCVBNM”
},
}
String pcmFilePath = "/storage/emulated/0/Download/voice8K16bitmono.pcm";
File rawFile = new File(pcmFilePath);
byte[] rawData = new byte[(int) rawFile.length()];
DataInputStream input = null;
try {
input = new DataInputStream(new FileInputStream(rawFile));
int readResult = input.read(rawData);
} catch (Exception ex) {
ex.printStackTrace();
}
if (input != null) {
input.close();
};
String base64 = Base64.encodeToString(rawData, Base64.DEFAULT);
String completePostBody = postBody.replace("ZXCVBNM" , base64);
“代码”:400,
"message": "'audio.content' 的值无效 (TYPE_BYTES),Base64 解码失败 \"...
有人有什么建议吗?
我设法从 Google Speech API 获得结果。
据记录,Base 64 编码不应进行换行
关联:https://cloud.google.com/speech/docs/base64-encoding
更改自Base64.DEFAULT
to Base64.NO_WRAP
在我的案例中起作用。
pcm 文件也应该是 LSB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)