Token导航 LogoToken导航

Agent Skill · 开发

xiaomi-any2speech-beyondtts(小米 Any2Speech Beyondtts)

用于辅助音频、音乐、语音转写、语音合成或声音素材处理。它适合让 Agent 生成配乐说明、整理音频流程、调用语音工具或处理播客和视频配音素材。使用时需要确认输入音频来源、输出格式、时长和模型限制;涉及人声克隆、版权音乐或公开发布时,应先核对授权和合规边界。

xiaomi-any2speech-beyondtts 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 2,366。

总安装 17,772周安装 712GitHub Stars 7下载 5,753核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.7

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:xiaomi-any2speech-beyondtts(小米 Any2Speech Beyondtts)
来源仓库:https://github.com/whiteshirt0429/xiaomi-any2speech-beyondtts
安装命令:
openclaw skills install xiaomi-any2speech-beyondtts
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install xiaomi-any2speech-beyondtts

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

小米 Any2Speech Beyondtts 是理解场景与情绪的语音大模型。支持长文多人对话、中英双语及音色克隆功能。xiaomi-any2speech-beyondtts 属于开发类 Skill,可作为该场景下的辅助能力补充。可生成播客、有声书、说唱等多种声音形式的内容。

人声克隆需上传参考音频,商用前务必获得合法授权。输出音频格式包括 WAV/MP3,时长受限于模型单次推理上限。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install xiaomi-any2speech-beyondtts;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

xiaomi-any2speech-beyondtts 怎么安装?

在终端执行 openclaw skills install xiaomi-any2speech-beyondtts。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

xiaomi-any2speech-beyondtts 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

xiaomi-any2speech-beyondtts 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

xiaomi-any2speech-beyondtts 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

xiaomi-any2speech-beyondtts 用的人多吗?

公开数据是累计安装 17,772 次,近一周安装 712 次,下载 5,753 次,GitHub 7 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

xiaomi-any2speech-beyondtts 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
xiaomi-any2speech-beyondtts

小米 Any2Speech Beyondtts · 本页

17,7727需要联网MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
xiaomi-any2speech
description
>
English
make a podcast/audiobook/debate/rap/news/stand-up/story/radio drama, read aloud/TTS/generate audio/voice over/narrate/dub/mimic voice/clone voice/use my voice/use this voice sample, make it listenable, send as voice.

Any2Speech

所有能力通过同一套 API 完成,由 instruction 字段决定最终形态。内置免费公开 Key,无需注册。

运行环境:需要 curl 和 python3(用于 JSON 解析);飞书发送可选需要 ffmpeg/ffprobe。

BASE=https://miplus-tts-public.ai.xiaomi.com
API_KEY=${API_KEY:-sk-anytospeech-pub-free}

Step 1 · 确认输入

用户给了什么source_typecurl 参数
文字内容text-F "source_type=text" -F "text=内容"
网页链接url-F "source_type=url" -F "url=链接"
本地文件file-F "source_type=file" -F "file=@/路径/文件"
参考音色文件 + 文字→ VP 流程跳到 Step 3-VP
参考音色文件 + 选模板→ VP 模板跳到 VP 模板章节(不需要文字)

来源缺失时:停下来问"请提供文字内容、网页链接或文件路径",不要猜测或用空值执行。

文件路径安全:仅接受用户在当前对话中明确提供的路径。不要自行扫描目录或猜测文件;不要读取 ~/.ssh、~/.env、~/.config 等敏感路径。

VP 判断:用户提供了参考音色文件(wav/mp3/m4a/flac/ogg/webm),或说了"用我的声音"、"克隆音色"、"参考这段录音"等 → 走 Step 3-VP。用户说了"用模板"或指定模板名 → 走 VP 模板(不需要文字)。VP 的一步式和两步式需要 text,模板不需要。

Step 2 · 构造 instruction

instruction 控制合成形态。选择逻辑:用户明确描述了风格 → 直接用;只说"帮我读" → 留空(单人朗读);说了场景没细节 → 从下表取最近的;英文输入 → 加 English 关键词。

场景中文 instructionEnglish instruction
两人播客两人播客,一人理性分析,一人感性追问,偶尔插嘴,5分钟内Two-host podcast, one analytical, one curious, with interruptions, under 5 min
相声传统相声,甲逗哏(语速快、北京腔),乙捧哏(沉稳正经),至少两个包袱—
新闻播报CCTV 新闻联播风格,先播导语,再逐条播报,结尾有总结语CNN anchor style, lead-in then item-by-item, closing summary
辩论正反双方,正方激情澎湃,反方逻辑冷静,各做30秒总结陈词Pro vs Con, pro passionate, con logical, 30s closing each
Rap押韵,节奏感强,两人 battle,明显停顿和连读节奏Rhyming rap battle, two performers, strong rhythm
脱口秀单人独白,幽默有深度,有停顿节奏感,偶尔自嘲Solo monologue, witty and deep, rhythmic pauses
有声书第三人称叙述,情绪随剧情起伏,遇到对话切换人物语气Third-person narration, emotion follows plot, voice-switch for dialogue
情感电台深夜电台,低沉磁性男声,语速缓慢Late-night radio, deep magnetic male voice, slow pace
单人 TTS女声,职业干练,语速偏快Female, professional tone, slightly fast

可叠加控制:语种(英文/中英混合)、音色(声音醇厚磁性)、情绪弧线(开场铺垫,中段碰撞,结尾升华)、互动(允许插话)、环境音(加观众笑声)、时长(10分钟内)、口音(东北腔/British accent)。建议核心控制点 ≤ 5 个。

Step 3 · 选接口并执行

默认走同步,切异步条件:504 超时 / 文件输入 / 文本超 1000 字。

同步

OUTPUT=output_$(date +%s).wav
curl -X POST "$BASE/v1/audio/generate" \
  -H "Authorization: Bearer $API_KEY" \
  -F "source_type=text" \
  -F "text=内容" \
  -F "instruction=风格描述" \
  --max-time 600 \
  --output "$OUTPUT"
echo "✓ 保存至 $OUTPUT"

异步(504 / 文件 / 长文本)

OUTPUT=output_$(date +%s).wav
JOB=$(curl -s -X POST "$BASE/v1/audio/jobs" \
  -H "Authorization: Bearer $API_KEY" \
  -F "source_type=text" \
  -F "text=内容" \
  -F "instruction=两人播客,一人理性分析,一人感性追问,5分钟内" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['job_id'])")
echo "已提交: $JOB"

for i in $(seq 1 60); do
  STATUS=$(curl -s -H "Authorization: Bearer $API_KEY" \
    "$BASE/v1/audio/jobs/$JOB" \
    | python3 -c "import sys,json; print(json.load(sys.stdin)['status'])")
  [ "$STATUS" = "done" ]   && break
  [ "$STATUS" = "failed" ] && echo "生成失败" && exit 1
  sleep 10
done
[ "$STATUS" != "done" ] && echo "轮询超时" && exit 1

curl -s -H "Authorization: Bearer $API_KEY" \
  "$BASE/v1/audio/jobs/$JOB/download" --output "$OUTPUT"
echo "✓ 保存至 $OUTPUT"

Step 3-VP · 参考音频克隆(Voice Prompt)

VP 接口与标准接口共用同一个 $BASE 和 $API_KEY。

默认走一步式——Agent 场景下一次调用最简洁。仅当用户明确要求"先看脚本"或"指定谁演谁"时才用两步式。

多人角色与参考音频的对应关系:如果需要确认“每个说话人用哪段参考音频”,优先走两步式 think -> synthesize。先用 think 拿到 speakers 和 script_lines,向用户确认角色列表,再按 voice_file_{角色名} 精确上传;不要只依赖上传顺序。多文件在字段名不匹配时按上传顺序兜底。

单文件行为差异:一步式(generate/jobs)传 1 个参考音频时,服务端自动注入单人朗读提示,强制生成单角色脚本;两步式 synthesize 无此限制,单文件会被复制给所有角色。因此多人场景只有 1 个参考音频时,应走两步式。

一步式(默认)

一次调用完成规划 + 合成。单人传一个 voice_file_角色名,多人传多个。

OUTPUT=vp_$(date +%s).wav
curl -X POST "$BASE/v1/audio/vp/generate" \
  -H "Authorization: Bearer $API_KEY" \
  -F "source_type=text" \
  -F "text=要合成的文本内容" \
  -F "instruction=两人播客,一人理性分析,一人感性追问" \
  -F "voice_file_主持人A=@/path/to/host_a.wav" \
  -F "voice_file_主持人B=@/path/to/host_b.mp3" \
  -F "denoise=1" \
  --max-time 600 \
  --output "$OUTPUT"
单人场景只需一个 voice_file_主播=@ref.wav。异步版用 $BASE/v1/audio/vp/jobs 提交,轮询方式与标准异步相同(加 voice_file_* 和可选 denoise 字段)。

两步式(用户要求预览脚本 / 指定角色映射 / 多次合成时使用)

第一步 think:LLM 规划,返回角色列表 + 可编辑脚本。

THINK=$(curl -s -X POST "$BASE/v1/audio/vp/think" \
  -H "Authorization: Bearer $API_KEY" \
  -F "source_type=text" \
  -F "text=要合成的文本内容" \
  -F "instruction=两人播客")
REQ_ID=$(echo "$THINK" | python3 -c "import sys,json; print(json.load(sys.stdin)['req_id'])")
echo "$THINK" | python3 -c "import sys,json; d=json.load(sys.stdin); print('speakers:', d['speakers']); [print(f\"  {l['speaker']}: {l['text']}\") for l in d['script_lines']]"

返回 speakers(如 ["主持人A","主持人B"])和 script_lines([{"speaker":"..","text":".."},...])。向用户展示脚本和角色列表,确认后进入第二步。

第二步 synthesize:上传参考音频合成。voice_file_ 后缀必须与 speakers 中的角色名完全一致。同一 req_id 可多次调用,换音色或改脚本。

OUTPUT=vp_$(date +%s).wav
curl -X POST "$BASE/v1/audio/vp/synthesize" \
  -H "Authorization: Bearer $API_KEY" \
  -F "req_id=$REQ_ID" \
  -F "voice_file_主持人A=@/path/to/host_a.wav" \
  -F "voice_file_主持人B=@/path/to/host_b.webm" \
  -F "denoise=1" \
  --max-time 3600 \
  --output "$OUTPUT"

编辑脚本时加 script_lines_json 字段(JSON 字符串):

curl -X POST "$BASE/v1/audio/vp/synthesize" \
  -H "Authorization: Bearer $API_KEY" \
  -F "req_id=$REQ_ID" \
  -F 'script_lines_json=[{"speaker":"主持人A","text":"修改后的台词"},{"speaker":"主持人B","text":"另一句"}]' \
  -F "voice_file_主持人A=@host_a.wav" \
  -F "voice_file_主持人B=@host_b.wav" \
  --max-time 3600 \
  --output "vp_edited.wav"

VP 参数速查

参数接口说明
voice_file_{角色名}synthesize / generate / jobs参考音频(wav/mp3/m4a/flac/ogg/webm),5~20s 清晰人声最佳,超 20s 自动裁切
denoisesynthesize / generate / jobs1=显式开启降噪,0=显式关闭;未传时跟随服务端 VP_DENOISE 配置,当前部署默认关闭。参考音频环境嘈杂时建议显式传 1
req_idsynthesize来自 think 返回值
script_lines_jsonsynthesize可选,编辑后脚本 [{"speaker":"..","text":".."},...]
降噪预览(不合成,仅试听降噪效果):curl -X POST "$BASE/v1/audio/vp/denoise" -H "Authorization: Bearer $API_KEY" -F "voice_file=@ref.webm" --output denoised.wav。当前返回标准 WAV,采样率为 48kHz。

VP 模板(预置脚本,不需要输入文本)

列出模板 → prepare 选用 → synthesize 合成,与两步式共用 synthesize。

# 列出模板(返回 title / speakers / voice_count / sentence_count)
curl -s -H "Authorization: Bearer $API_KEY" "$BASE/v1/audio/vp/templates" \
  | python3 -c "import sys,json; [print(f\"{t['title']}({t['voice_count']}人,{t['sentence_count']}句)\") for t in json.load(sys.stdin)['templates']]"

# prepare(用 title 标识,需 URL encode;不需要 text)
# 返回 req_id / speakers / summary / sentence_count / script_lines
TITLE="罗永浩、王自如的世纪骂战"
ENCODED=$(python3 -c "import sys,urllib.parse; print(urllib.parse.quote(sys.argv[1]))" "$TITLE")
PREP=$(curl -s -X POST "$BASE/v1/audio/vp/templates/$ENCODED/prepare" \
  -H "Authorization: Bearer $API_KEY")
REQ_ID=$(echo "$PREP" | python3 -c "import sys,json; print(json.load(sys.stdin)['req_id'])")
echo "$PREP" | python3 -c "import sys,json; d=json.load(sys.stdin); print('speakers:', d['speakers'])"

# synthesize(同两步式)
OUTPUT=vp_$(date +%s).wav
curl -X POST "$BASE/v1/audio/vp/synthesize" \
  -H "Authorization: Bearer $API_KEY" \
  -F "req_id=$REQ_ID" \
  -F "voice_file_主持人=@host.wav" \
  -F "voice_file_嘉宾=@guest.wav" \
  --max-time 3600 \
  --output "$OUTPUT"

错误处理

接口错误处置
标准 generate504切 /v1/audio/jobs 异步重试
标准 generate502/500等 30s 重试 1 次,仍失败告知用户
VP generate(一步式)504切 /v1/audio/vp/jobs 异步重试
VP synthesize(两步式/模板)504/502用同一个 req_id 重试 synthesize(间隔 60s,最多 3 次)。不要切 vp/jobs——一步式会重新规划角色名,导致 voice_file_ 字段名不匹配、按上传顺序兜底搞反音色
所有接口422检查参数后重试 1 次
所有接口429等 30s 后重试 1 次

VP 合成必须等到完成:长脚本(50+ 句)合成耗时可能超过 10 分钟,504 通常是暂时性超时而非永久失败。Agent 必须坚持用同一个 req_id 重试直到成功,禁止自行拆分/截断 annotation 句子、禁止建议用户缩短内容——VP 合成依赖完整上下文做韵律规划,拆分会破坏节奏和衔接。

Step 4 · 交付结果

  • 告知文件路径和大致时长(有 ffprobe 则 ffprobe -v quiet -show_entries format=duration -of csv=p=0 "$OUTPUT",无则按文本长度估算)
  • 支持音频播放的环境尝试内联播放
  • 不要主动执行用户未请求的操作(发飞书、上传云端等)
  • 失败时给出原因和建议(简化文本 / 稍后重试)

飞书语音发送(可选)

仅当用户明确说"发给我"/"发飞书"/"发到群里"时执行。

前置:FEISHU_TENANT_TOKEN(或 APP_ID + APP_SECRET)、CHAT_ID、可选 ffmpeg/ffprobe。

[ -z "$FEISHU_TENANT_TOKEN" ] && FEISHU_TENANT_TOKEN=$(curl -s -X POST \
  "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
  -H "Content-Type: application/json" \
  -d "{\"app_id\":\"$APP_ID\",\"app_secret\":\"$APP_SECRET\"}" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['tenant_access_token'])")
ffmpeg -y -i "$OUTPUT" -c:a libopus -b:a 32k output.opus 2>/dev/null && UPLOAD=output.opus || UPLOAD="$OUTPUT"
DURATION_MS=$(ffprobe -v quiet -show_entries format=duration -of csv=p=0 "$OUTPUT" | awk '{printf "%d",$1*1000}')
FILE_KEY=$(curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/files" \
  -H "Authorization: Bearer $FEISHU_TENANT_TOKEN" \
  -F "file=@$UPLOAD" -F "file_type=opus" -F "file_name=tts.opus" -F "duration=$DURATION_MS" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['file_key'])")
curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
  -H "Authorization: Bearer $FEISHU_TENANT_TOKEN" -H "Content-Type: application/json" \
  -d "{\"receive_id\":\"$CHAT_ID\",\"msg_type\":\"audio\",\"content\":\"{\\\"file_key\\\":\\\"$FILE_KEY\\\"}\"}"

注意事项

  • 文本长度:建议 50~5000 字;超 1000 字自动走异步
  • 文件大小:> 20MB 建议先压缩;支持 txt md pdf docx csv json html + 常见音视频
  • 频率:公共 Key 有并发限制,间隔 ≥ 3s,429 则等 30s 重试,批量请串行
  • 耗时参考:短文本 10–30s / 长文 30s–3min / 多人节目 1–10min
  • 输出:生成接口默认返回 WAV(24kHz);/v1/audio/vp/denoise 降噪预览当前返回 WAV(48kHz)。建议用时间戳命名避免覆盖
  • 说话人:建议 ≤ 4 人,人数越多控制难度越高

平台分布

OpenClaw

76.15%
按下载量换算4,381

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills