You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP调用Google Speech Recognition API遇请求体调用失败问题

解决Google Speech-to-Text API调用失败的常见问题

嘿,我太懂调用Google语音识别API时卡壳的郁闷了,结合你给出的请求信息,我梳理了几个最容易踩坑的点,还有能直接上手的正确调用姿势:

1. 先把基础请求配置拉满

首先得确保这两个核心细节没出错:

  • 必须用POST请求:绝对不能用GET,毕竟要传JSON格式的请求体,GET压根扛不住这么大的内容
  • 请求头一定要加Content-Type: application/json:这步很多人容易忘,直接导致服务器识别不了你的请求格式,直接拒掉

另外,你的URL里已经带了key参数,这没问题,但得确认:

  • 这个API Key是有效的,没过期也没被禁用
  • 你已经在Google Cloud控制台里启用了Speech-to-Text API(好多人注册了Key却忘了开对应服务,白忙活半天)

2. 音频内容的坑得仔细抠

你在config里指定了FLAC编码、16kHz采样率,那必须保证:

  • audio.content里的base64字符串,确实是从16kHz、单声道的FLAC文件转来的
    • 要是你的音频是立体声,得在config里加"audioChannelCount": 2
    • 可以把base64解码回文件,用播放器打开试试,先确认音频本身没问题
  • 单次请求的音频时长不能超过1分钟(免费额度限制),超过的话得用speech:longrunningrecognize这个异步端点,不能用recognize同步接口

3. 给你一个可直接测试的请求示例

用curl命令的话,正确的调用格式是这样的(把你的Key和base64内容替换进去就行):

curl -X POST "https://content-speech.googleapis.com/v1/speech:recognize?key=AIzaSyD-XXXXXXXXXXXXXXXXX-Al7hLQDbugrDcw" \
  -H "Content-Type: application/json" \
  -d '{
        "audio": {
          "content": "ZkxhQwAAACIEg....more......FzSi6SngVApeE="
        },
        "config": {
          "encoding": "FLAC",
          "sampleRateHertz": 16000,
          "languageCode": "en-US"
        }
      }'

4. 常见错误的快速排查指南

要是还是失败,对着错误信息找原因就行:

  • API key not valid:检查Key是不是输错了,有没有设置IP限制,或者Speech-to-Text API没启用
  • Invalid audio content:要么base64编码错了,要么音频格式和config里的不匹配(比如实际是MP3却写了FLAC)
  • Permission denied:可能是Key没有对应权限,或者超出了免费额度需要启用付费

内容的提问来源于stack exchange,提问作者Faraaz Farzain Permadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:58:42