基于火山引擎豆包语音合成 WebSocket 协议(PodcastTTS, /api/v3/sami/podcasttts)将某个话题合成为播客音频并保存为本地文件。支持:
生成播客 或 播客合成 等相关关键词。当你收到用户请求生成播客时:
action=4 和 prompt_text = 话题文本。action=0 和 input_url = 网页地址或文件下载地址。action=0 和 text = 用户上传文件读取出来的内容或者是一段比较长的文本,一般超过 200 个字。prompt_text(原始话题,一般不超过 20 个字)或 input_url(网页地址或文件下载地址) 或者 text(用户上传文件读取出来的内容或者是一个比较长的文本,一般超过 200 个字)。cd 到本技能目录: skills/byted-podcast-gen。python scripts/podcast.py [参数]。参考下面示例部分。audio_path / texts / audio_url 使用生成结果,如果有 audio_url 是一个带过期时间的 URL, 原封不动的返回给用户, audio_path 是本地文件路径, 可以给用户提供下载。参数简写必填说明--text否输入原始长文本( action=0 时使用)--input_url否输入文本的 URL( action=0 时使用,二选一)--prompt_text否提示词文本( action=4 时必填)--action否播客类型: 0(原始文本/URL)、 4(prompt);默认 4``--speaker_info否说话人配置 JSON(默认 {"random_order":false})--encoding否音频格式: mp3(默认)、 wav、 ogg_opus``--output否最终音频输出文件路径(默认自动生成到 output/)
脚本输出 JSON,包含:
status: "success" 或 "error"task_id: 任务标识(用于定位一次生成任务)audio_path: 最终音频本地路径texts: 分段文本 JSON 字符串,每个发音人对应的文本列表。audio_url: 服务端返回的音频下载地址error: 失败时的错误信息MODEL_SPEECH_API_KEY:检查环境变量或命令行参数是否已配置,不存在的时候提示用户输入, 然后设置到环境变量。MsgType.Error):根据错误信息检查账号权限、资源 ID、输入内容及是否已开通服务。quota 说明当前账号已超量,需升级火山引擎豆包语音的播客服务。pip install -r requirements.txtbash
# 基于话题生成播客音频
ptompt_text="豆包语音合成服务"
python scripts/podcast.py --prompt_text $ptompt_text --action 4
# 基于网页内容生成播客音频
url="https://www.volcengine.com/docs/6561/1668014?lang=zh"
python scripts/podcast.py --input_url $url --action 0
# 基于长文本内容生成播客音频
text="欢迎收听本期节目,我们聊聊人工智能的关键拐点……"
python scripts/podcast.py --text $text --action 0