播客生成器 — 根据用户描述,通过搜索引擎抓取最新资讯,生成口语化播客脚本,根据脚本语义自动匹配最合适的讯飞TTS声音,合成时长3分钟内的MP3音频并发送。触发词:生成播客、播客、podcast、帮我做一段音频、做一期节目。
根据用户描述,自动检索信息 → 生成脚本 → 语义匹配声音 → 合成音频 → 发送文件。
本 skill 需要 xfyun-tts skill 已安装,且以下环境变量已配置(通过 openclaw config set 或系统环境变量注入):
text
XFYUN_APP_ID
XFYUN_API_KEY
XFYUN_API_SECRET
直接用 web_fetch 调用搜索引擎 URL 抓取资讯,无需额外 skill。
text
# 国内新闻/热点(近一天)
https://cn.bing.com/search?q={keyword}&ensearch=0&tbs=qdr:d
# 科技/AI(近一周)
https://cn.bing.com/search?q={keyword}+最新进展&ensearch=0&tbs=qdr:w
# 国际新闻
https://duckduckgo.com/html/?q={keyword}+news+today
# 备用
https://www.sogou.com/web?query={keyword}
抓取 1–2 个源,提取关键事实和数据点即可。若结果为空或全是广告,换备用引擎重试。
基于检索结果,生成口语化播客脚本。
目标时长字数范围2分钟350–420字2.5分钟450–520字~3分钟550–600字
上限 600 字(speed=48 约 2:40)
**、 #)、表情符号[p300] 停顿标记(300ms)以下为 xfyun-tts 完整声音列表( python3 tts.py --list-voices 输出,共53个):
VCN名称性别语言场景x5_lingyuzhao_flow聆玉昭成年女中文普通话交互聊天x5_lingxiaotang_flow聆小糖成年女中文普通话语音助手x5_EnUs_Grant_flowGrant成年女英文美式口音交互聊天x5_EnUs_Lila_flowLila成年女英文美式口音交互聊天x6_lingxiaoli_pro聆小璃成年女中文普通话交互聊天x6_xiaoqiChat_pro聆小琪成年女中文普通话交互聊天x6_lingfeiyi_pro聆飞逸成年男中文普通话交互聊天x6_feizheChat_pro聆飞哲成年男中文普通话交互聊天x6_lingxiaoyue_pro聆小玥成年女中文普通话交互聊天x6_lingxiaoxuan_pro聆小璇成年女中文普通话交互聊天x6_lingyuyan_pro聆玉言成年女中文普通话交互聊天x6_pangbainan1_pro旁白男声成年男中文普通话旁白配音x6_pangbainv1_pro旁白女声成年女中文普通话旁白配音x6_lingfeihan_pro聆飞瀚成年男中文普通话纪录片x6_lingfeihao_pro聆飞皓成年男中文普通话广告促销x6_gufengpangbai_pro古风旁白成年男中文普通话旁白配音x6_lingyuaner_pro聆园儿成年女中文普通话儿童绘本x6_ganliannvxing_pro干练女性成年女中文普通话角色配音x6_ruyadashu_pro儒雅大叔成年男中文普通话角色配音x6_lingyufei_pro聆玉菲成年女中文普通话时政新闻x6_lingxiaoshan_pro聆小珊成年女中文普通话时政新闻x6_lingxiaoyun_pro聆小芸成年女中文普通话角色配音x6_lingyouyou_pro聆佑佑童年女中文普通话交互聊天x6_lingxiaoying_pro聆小颖成年女中文普通话交互聊天x6_lingxiaozhen_pro聆小瑱成年女中文普通话直播带货x6_lingfeibo_pro聆飞博成年男中文普通话时政新闻x6_waiguodashu_pro外国大叔成年男中文普通话(外国人说中文)角色配音x6_gaolengnanshen_pro高冷男神成年男中文普通话角色配音x6_dongmanshaonv_pro动漫少女成年女中文普通话动漫角色x6_wennuancixingnansheng_mini温暖磁性男声成年男中文普通话角色配音x6_xiaonaigoudidi_mini小奶狗弟弟成年男中文普通话角色配音x6_shibingnvsheng_mini士兵女声成年女中文普通话角色配音x6_kongbunvsheng_mini恐怖女声成年女中文普通话旁白配音_悬疑恐怖x6_yulexinwennvsheng_mini娱乐新闻女声成年女中文普通话娱乐新闻x6_wenrounansheng_mini温柔男声成年男中文普通话售后客服x6_jingqudaolannvsheng_mini景区导览女声成年女中文普通话景区导览解说x6_daqixuanchuanpiannansheng_mini大气宣传片男声成年男中文普通话广告宣传片x6_cuishounvsheng_pro催收女声成年女中文普通话催收客服x6_yingxiaonv_pro营销女声成年女中文普通话营销客服x6_huanlemianbao_pro海绵宝宝童年男中文普通话IP模仿x6_xiangruiyingyu_pro商务殷语成年男中文普通话IP模仿x6_taiqiangnuannan_pro台湾腔温柔男声成年男台湾话台湾话x6_wumeinv_pro妩媚姐姐成年女中文普通话角色配音x6_lingbosong_pro聆伯松成年男中文普通话角色配音x6_dudulibao_pro少女可莉童年女中文普通话IP模仿x6_huajidama_pro滑稽大妈成年女中文普通话角色配音x6_huoposhaonian_pro活泼少年成年男中文普通话角色配音x6_lingxiaoxue_pro聆小雪成年女中文普通话角色配音x6_gufengxianv_mini古风侠女成年女中文普通话角色配音x6_wuyediantai_mini午夜电台成年女中文普通话角色配音x6_tiexinnanyou_mini贴心男友成年男中文普通话角色配音x4_zijin_oral子津成年男天津话交互聊天x4_ziyang_oral子阳成年男东北话交互聊天
根据脚本主题、语气、受众,从上表中选择场景最匹配的声音:
x6_lingfeibo_pro 或 x6_lingyufei_pro(场景:时政新闻)x6_lingfeihan_pro(场景:纪录片)x6_pangbainan1_pro(场景:旁白配音)x6_lingfeihan_pro 或 x6_pangbainan1_prox6_yulexinwennvsheng_mini(场景:娱乐新闻)x6_daqixuanchuanpiannansheng_mini(场景:广告宣传片)x6_lingyuaner_pro(场景:儿童绘本)x6_gufengpangbai_pro(场景:旁白配音,古朴厚重)x6_kongbunvsheng_mini(场景:悬疑恐怖)x5_lingyuzhao_flow(通用,自然亲切)x5_EnUs_Lila_flow(美式英语,温暖自然)x4_ziyang_oral(东北话)或 x4_zijin_oral(天津话)x5_lingyuzhao_flow将脚本写入临时文件后调用 xfyun-tts:
bash
# 1. 定义输出路径(使用系统临时目录 + 时间戳,跨平台兼容)
OUTDIR=$(mktemp -d)
OUTFILE="$OUTDIR/podcast_$(date +%Y%m%d_%H%M%S).mp3"
SCRIPTFILE="$OUTDIR/script.txt"
# 2. 写入脚本
cat > "$SCRIPTFILE" << 'SCRIPT'
<脚本内容>
SCRIPT
# 3. 定位 xfyun-tts 脚本(openclaw skills 安装目录)
TTS_SCRIPT=$(openclaw skills path xfyun-tts 2>/dev/null || find ~/.openclaw -name "tts.py" -path "*/xfyun-tts/*" 2>/dev/null | head -1)
# 4. 合成
python3 "$TTS_SCRIPT" \
--voice <选定VCN> \
--output "$OUTFILE" \
--speed 48 \
--volume 55 \
--file "$SCRIPTFILE"
echo "$OUTFILE"
环境变量由 OpenClaw 自动注入(通过 openclaw config set skills.entries.xfyun-tts.env.*),无需硬编码。
python
message(
action="send",
filePath="<OUTFILE 路径>",
caption="🎙️ <标题> · <日期>\n🎤 声音:<声音名称>(<选择理由>)\n⏱️ 约 X 分钟\n📌 <一句话内容简介>"
)
发送后确认返回 messageId 存在,确保文件真正上传成功。