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

如何借助Google Cloud语音转文本服务获取说话人切换时间戳?

长音频多说话人分割实现方案(基于Google Cloud Speech-to-Text)

核心思路

利用Google Cloud Speech-to-Text的**说话人分离(Speaker Diarization)**能力,直接获取带说话人标签的时间片段,无需手动遍历每个字词判断切换点,既高效又能保证准确性。

1. 配置长音频识别请求

调用longrunningrecognize接口时,必须在请求参数中开启说话人分离配置:

  • 设置diarizationConfig.enableSpeakerDiarization = true
  • 可选配置minSpeakerCount和maxSpeakerCount(根据音频中预估的说话人数量设置,能提升识别精度)
  • 确保音频格式符合要求(推荐FLAC、WAV等无损格式,采样率16kHz以上)

2. 解析识别结果获取说话人片段

接口返回的识别结果中,每个Word对象包含speakerTag(说话人标签,从1开始)、startTime和endTime。只需遍历结果,合并连续相同speakerTag的字词,即可得到每个说话人完整的音频片段时间范围:

  • 初始化当前说话人标签、片段起始时间
  • 遍历每个字词:
    • 若当前字词的speakerTag与之前一致,更新片段结束时间为该字词的endTime
    • 若speakerTag变化,保存上一个说话人的片段(起始时间+结束时间+标签),并重置当前说话人信息
  • 遍历结束后保存最后一个片段

3. 切割音频文件

使用ffmpeg工具根据获取到的时间片段切割原音频,命令示例:

# 切割说话人1的片段,从10.5秒到25.3秒
ffmpeg -i input.wav -ss 10.5 -to 25.3 -c copy speaker_1_segment_1.wav

批量处理时可编写脚本(比如Python)自动生成所有切割命令。

优化建议

  • 过滤低置信度片段:若字词的confidence低于阈值(比如0.8),可忽略该部分,避免错误的说话人标签影响分割
  • 音频预处理:若原音频有背景噪音,先通过降噪工具(如Audacity、FFmpeg的降噪滤镜)处理,能提升说话人分离的准确性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:55:18