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

基于Twilio的电话GPT助手:如何在通话流中播放本地音频文件?

解决方案:Twilio通话中播放静态音频文件

针对你遇到的无法用send_static_audio播放tts_output4.wav的问题,下面是具体的代码修正方案和排查要点:

1. 核心问题分析

Twilio通话中播放音频依赖TwiML的<Play>标签,而非直接发送文件内容。你的send_static_audio函数可能未正确生成符合要求的TwiML响应,或者音频文件本身不符合Twilio的格式/访问要求。

2. 修正server.py代码(以Flask为例)

假设你用Flask处理Twilio webhook,以下是转写完成后触发音频播放的关键代码:

from twilio.twiml.voice_response import VoiceResponse, Play
from flask import Flask, request, Response

app = Flask(__name__)

# 转写完成后的回调路由,负责播放音频
@app.route("/post_transcription", methods=["POST"])
def post_transcription():
    # 获取Google Cloud Speech的转写结果(根据你的实际逻辑调整)
    transcription = request.form.get("transcript")
    
    # 生成TwiML响应,播放音频
    resp = VoiceResponse()
    # 注意:音频文件必须满足两个条件:
    # - 格式为Twilio支持的WAV(PCM 8kHz/16kHz,16-bit单声道)或MP3
    # - 能被公网访问(本地开发用ngrok暴露端口,替换为ngrok提供的URL)
    resp.play("https://your-ngrok-domain.com/static/tts_output4.wav")
    return Response(str(resp), mimetype="application/xml")

# 流媒体转写处理路由(对应streams.xml的Stream URL)
@app.route("/stream_handler", methods=["POST"])
def stream_handler():
    # 这里处理Google Cloud Speech的实时转写逻辑
    # 转写完成后,重定向到音频播放路由
    resp = VoiceResponse()
    resp.redirect("/post_transcription")
    return Response(str(resp), mimetype="application/xml")

if __name__ == "__main__":
    app.run(port=5000, debug=True)

3. 修正streams.xml配置

确保流媒体转写结束后触发正确的回调:

<Response>
  <Start>
    <!-- 替换为你的公网可访问的流媒体处理URL -->
    <Stream url="wss://your-ngrok-domain.com/stream_handler" />
  </Start>
  <!-- 转写结束后自动跳转到音频播放路由 -->
  <Redirect method="POST">https://your-ngrok-domain.com/post_transcription</Redirect>
</Response>

4. 关键排查要点

  • 音频格式校验:Twilio不支持所有WAV格式,用ffmpeg转换为兼容格式:
    ffmpeg -i tts_output4.wav -ar 8000 -ac 1 -acodec pcm_s16le twilio_compatible.wav
    
  • 文件可访问性:本地开发时用ngrok暴露Flask服务,确保音频文件的URL能被Twilio服务器访问到(放在Flask的static目录下即可)。
  • Twilio日志调试:登录Twilio控制台,查看通话的调试日志,检查是否有音频URL访问失败、格式不支持等错误提示。
  • 自定义函数修正:如果你的send_static_audio是自定义函数,确保它返回的是包含<Play>标签的XML响应,而非直接输出文件二进制内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:05:08