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

如何通过Google Cloud Speech API获取每个转录单词的时间戳?

如何用Google Cloud Speech API获取转录单词的时间戳?

嘿,刚好做过类似的需求!你现在用的speech_recognition库确实简化了Google Cloud Speech API的调用,但默认调用只返回纯文本。要拿到每个单词的时间戳,只需要调整调用参数,解析API返回的完整响应就行,我给你整理好具体步骤和代码:

核心思路

speech_recognition库的recognize_google_cloud方法默认只提取转录后的文本,但通过添加show_all=True参数,可以获取Google Cloud Speech API返回的完整原始响应,里面就包含了每个单词的起始/结束时间戳信息。

修改后的完整代码

import os
import sys
import speech_recognition as sr

# 加载Google Cloud服务账号凭证
with open("~/Documents/speech-to-text/speech2textgoogleapi.json") as f:
    GOOGLE_CLOUD_SPEECH_CREDENTIALS = f.read()

# 获取命令行传入的wav文件路径
audio_file = sys.argv[1]
r = sr.Recognizer()

# 读取完整音频文件
with sr.AudioFile(audio_file) as source:
    audio = r.record(source)

# 调用Google Cloud Speech API,获取完整响应数据
response = r.recognize_google_cloud(
    audio,
    credentials_json=GOOGLE_CLOUD_SPEECH_CREDENTIALS,
    show_all=True  # 关键参数:返回API原始响应,而非仅文本
)

# 解析响应,提取单词和时间戳
if response.get("results"):
    for result in response["results"]:
        # 取置信度最高的转录结果(第一个alternative)
        top_alternative = result["alternatives"][0]
        print(f"完整转录文本: *{top_alternative['transcript']}*")
        print("\n单词时间戳详情:")
        # 检查是否包含单词级时间戳(API仅在满足条件时返回)
        if "words" in top_alternative:
            for word_item in top_alternative["words"]:
                word = word_item["word"]
                # 把带"s"后缀的时间字符串转成浮点数
                start_time = float(word_item["start_time"].replace("s", ""))
                end_time = float(word_item["end_time"].replace("s", ""))
                print(f"- 单词: `{word}` | 开始时间: {start_time:.2f}s | 结束时间: {end_time:.2f}s")
else:
    print("未能识别音频内容,请检查文件格式或凭证权限")

关键细节说明

  • show_all=True:这是开启时间戳功能的核心,没有这个参数,库只会返回纯文本字符串。
  • 时间戳解析:API返回的时间是带s后缀的字符串(比如"1.230s"),需要去掉后缀转成浮点数,方便后续处理。
  • 置信度选择:每个识别结果会返回多个alternative(不同置信度的转录版本),我们默认取第一个(置信度最高的)。

注意事项

  • 确保你的音频文件符合Google Cloud要求:推荐16kHz采样率、PCM编码(标准wav文件默认满足)、单声道,否则可能无法返回单词级时间戳。
  • 确认你的Google Cloud账号已启用Speech-to-Text API,且凭证文件有正确的访问权限。

内容的提问来源于stack exchange,提问作者mowglis_diaper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:46:43