【问题标题】:Google cloud speech to text long audio response谷歌云语音转文本长音频响应
【发布时间】:2020-03-01 11:45:19
【问题描述】:

我正在尝试将音频转换为文本,但得到的结果是,

LongRunningRecognizeResponse { results: [] }

这是我的功能,

    const audio = {
    uri: `gs://${BUCKET}/${fileName}`,
};

const request = {
    config: {
        encoding: 'LINEAR16',
        sampleRateHertz: 16000,
        languageCode: 'en-US',
    },
    audio: audio,
};

client.longRunningRecognize(request)
    .then(responses => {
        const [operation, initialApiResponse] = responses;

        operation.on('complete', (result, metadata, finalApiResponse) => {
            console.log('complete', result) // LongRunningRecognizeResponse { results: [] }
        });

        operation.on('progress', (metadata, apiResponse) => {
            console.log('progress', apiResponse)
        });

        operation.on('error', err => {
            throw (err);
        });
    })

【问题讨论】:

  • 如果这种情况持续存在并且您认为这是 Google 方面的问题,您可以打开 Issue Tracker entry 并让工程师查看。您可以将其用作template

标签: google-cloud-platform speech-recognition speech-to-text google-speech-api google-cloud-speech


【解决方案1】:
const transcribeLong = async (url, channels) => {
    const nameExtract = url.split('/');
    const fileName = nameExtract[nameExtract.length - 1];
    let localfile;
    try {
        localfile = await download(url);
        fs.writeFileSync(fileName, localfile);
        await storage.bucket(BUCKET).upload(fileName);
        const audio = {
            uri: `gs://${BUCKET}/${fileName}`,
        };
        const request = {
            config: {
                languageCode: `en-US`,
                alternativeLanguageCodes: [`es-MX`, `en-US`],
                encoding: 'LINEAR16',
                sampleRateHertz: 8000,
                audioChannelCount: channels || 2, //changed from 2
                enableSeparateRecognitionPerChannel: true,
            },
            audio,
        };
        const [operation] = await client.longRunningRecognize(request);
        const [response] = await operation.promise();
        return response
    } catch (error) {
        console.error(error.toString());
    }
};

问题是使用错误的渠道作为请求中的参数。

【讨论】:

    猜你喜欢
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多