gpt4 book ai didi

audio-recording - Google Speech API - 识别 base64 编码的音频

转载 作者:行者123 更新时间:2023-12-04 07:01:11 25 4
gpt4 key购买 nike

我一直在为 Google Speech API 苦苦挣扎,希望得到一些建议。

这是我想要做的:

  • 在浏览器中录制音频
  • 将录音转换为 base64 并发送到我的服务器
  • 在服务器上,调用 Google Speech API 的 syncRecognize 函数,传入我的 base 64 编码音频

  • 我总是收到一个空的结果对象。

    当我关注这个时 getting started tutorial虽然一切正常。

    我究竟做错了什么?

    任何提示/想法将不胜感激。
    const Speech = require('@google-cloud/speech');
    const SpeechV1beta1 = require('@google-cloud/speech/src/v1beta1')

    module.exports = {

    syncRecognize: function(base64Encoding) {

    const speech = Speech();
    const speechV1beta1 = SpeechV1beta1();
    const client = speechV1beta1.speechClient();

    const body = {
    "config": {
    "encoding":"LINEAR16",
    "sampleRate":16000,
    "languageCode":"en-US"
    },
    "audio": {
    "content": base64Encoding
    }
    }

    return client.syncRecognize(body)
    .then((results) => {
    console.log('results', results)
    return {transcription: results[0]};
    }).catch(function(error) {
    return {error: error};
    });;

    }
    }

    最佳答案

    可能您从浏览器录制的内容没有那些配置参数。

    我遇到的另一个问题是,对于超过 5 秒的音频持续时间,超时开始,到目前为止我还没有能够有效地更改 API 截止日期。这也可能是您的情况。

    为了验证我的 webapp 中音频的元数据,我使用 ffmpeg : 我自动将文件保存到存储并运行 ffmpeg -i filename在脚本中检索采样率、编码、 channel 数和持续时间。

    请注意,有 audio lenght limits用于同步语音识别请求。如果超过它们,我建议您使用异步方法(或将音频文件拆分为子文件)。在前一种情况下,您可能需要转换音频编码(幸运的是 ffmpeg 也可以为您执行此操作:))。在后一种情况下,您可以使用 SoX在静音时分割音频并分别处理它们。

    关于audio-recording - Google Speech API - 识别 base64 编码的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42468517/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com