Google 云语音同步识别 "INVALID_ARGUMENT"
Google cloud speech syncrecognize "INVALID_ARGUMENT"
我管理了 "overview tutorial" : https://cloud.google.com/speech/docs/getting-started
然后我尝试使用我自己的音频文件。我上传了一个 .flac 文件,采样率为 16000Hz。
我只用 google 云存储 (gs://my-bucket/test4.flac
)
上托管的我自己的音频文件更改了下面的 sync-request.json
文件
{
"config": {
"encoding":"flac",
"sample_rate": 16000
},
"audio": {
"uri":"gs://my-bucket/test4.flac"
}
}
文件识别良好,但请求 return 出现 "INVALID_ARGUMENT" 错误
{
"error": {
"code": 400,
"message": "Unable to recognize speech, code=-73541, possible error in recognition config. Please correct the config and retry the request.",
"status": "INVALID_ARGUMENT"
}
}
不好意思,作为文档“https://cloud.google.com/speech/docs/basics”,.flac 文件必须是 16 位 PCM
总结:
编码:FLAC
通道:1 @ 16 位
采样率:16000Hz
/!\ 注意不要导出会引发其他错误的立体声文件(2 通道)文件(仅接受一个通道)Google speech API internal server error -83104
根据 this 回答,所有编码 仅支持 1 个通道(单声道) 音频
我正在使用此命令创建 FLAC 文件:
ffmpeg -i test.mp3 test.flac
Sample rate in request does not match FLAC header
但添加 -ac 1
(将音频通道数设置为 1)解决了这个问题。
ffmpeg -i test.mp3 -ac 1 test.flac
这是我的完整 Node.js
代码
const Speech = require('@google-cloud/speech');
const projectId = 'EnterProjectIdGeneratedByGoogle';
const speechClient = Speech({
projectId: projectId
});
// The name of the audio file to transcribe
var fileName = '/home/user/Documents/test/test.flac';
// The audio file's encoding and sample rate
const options = {
encoding: 'FLAC',
sampleRate: 44100
};
// Detects speech in the audio file
speechClient.recognize(fileName, options)
.then((results) => {
const transcription = results[0];
console.log(`Transcription: ${transcription}`);
}, function(err) {
console.log(err);
});
采样率可以是16000或44100或其他有效的,编码可以是FLAC或LINEAR16。 Cloud Speech Docs
我管理了 "overview tutorial" : https://cloud.google.com/speech/docs/getting-started 然后我尝试使用我自己的音频文件。我上传了一个 .flac 文件,采样率为 16000Hz。
我只用 google 云存储 (gs://my-bucket/test4.flac
)
sync-request.json
文件
{
"config": {
"encoding":"flac",
"sample_rate": 16000
},
"audio": {
"uri":"gs://my-bucket/test4.flac"
}
}
文件识别良好,但请求 return 出现 "INVALID_ARGUMENT" 错误
{
"error": {
"code": 400,
"message": "Unable to recognize speech, code=-73541, possible error in recognition config. Please correct the config and retry the request.",
"status": "INVALID_ARGUMENT"
}
}
不好意思,作为文档“https://cloud.google.com/speech/docs/basics”,.flac 文件必须是 16 位 PCM
总结:
编码:FLAC
通道:1 @ 16 位
采样率:16000Hz
/!\ 注意不要导出会引发其他错误的立体声文件(2 通道)文件(仅接受一个通道)Google speech API internal server error -83104
根据 this 回答,所有编码 仅支持 1 个通道(单声道) 音频
我正在使用此命令创建 FLAC 文件:
ffmpeg -i test.mp3 test.flac
Sample rate in request does not match FLAC header
但添加 -ac 1
(将音频通道数设置为 1)解决了这个问题。
ffmpeg -i test.mp3 -ac 1 test.flac
这是我的完整 Node.js
代码
const Speech = require('@google-cloud/speech');
const projectId = 'EnterProjectIdGeneratedByGoogle';
const speechClient = Speech({
projectId: projectId
});
// The name of the audio file to transcribe
var fileName = '/home/user/Documents/test/test.flac';
// The audio file's encoding and sample rate
const options = {
encoding: 'FLAC',
sampleRate: 44100
};
// Detects speech in the audio file
speechClient.recognize(fileName, options)
.then((results) => {
const transcription = results[0];
console.log(`Transcription: ${transcription}`);
}, function(err) {
console.log(err);
});
采样率可以是16000或44100或其他有效的,编码可以是FLAC或LINEAR16。 Cloud Speech Docs