Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计提醒

moss-tts-family-chatbotMoss tts 家庭聊天机器人

Agent Skill

moss-tts-family-chatbot 用于处理音频、语音、转写和声音素材相关任务,适合在 OpenClaw 中需要整理音频流程、转写内容或生成配音素材时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

10,984

周安装

467

GitHub Stars

公开资料未说明

下载量

3,848
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:moss-tts-family-chatbot(Moss tts 家庭聊天机器人)
来源仓库:https://github.com/mkkb473/moss-tts-family-chatbot
安装命令:
openclaw skills install moss-tts-family-chatbot
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

ClawHubOpenClaw
openclaw skills install moss-tts-family-chatbot

简介

moss-tts-family-chatbot 提供 ASR、TTS、声音克隆与飞书语音气泡等音频能力。

  • 适用于聊天机器人、教育应用或无障碍服务开发。
  • 自动识别消息中的媒体附件并触发相应处理流程。
  • 安装命令:openclaw skills install moss-tts-family-chatbot;需 MOSI Studio API 密钥。
  • 声音克隆功能涉及生物特征数据,使用需用户明示同意。

SKILL.md

name
mosi-studio
description
>

MOSI Studio 音频全套 Skill

文件路径铁律(禁止例外) 所有生成的音频文件必须保存到 ~/.openclaw/workspace/。 绝对不能用 /tmp//var/tmp/ 或相对路径。 OpenClaw 媒体策略会静默拦截 workspace 以外的文件——不报错,直接失败。 错误示例:ffmpeg -i x.wav /tmp/out.opus 正确示例:ffmpeg -i x.wav ~/.openclaw/workspace/out.opus

支持的能力:

功能模型脚本
文字转语音(TTS)moss-ttsscripts/mosi_tts.sh / mosi_tts.py
指令式语音生成moss-voice-generatorscripts/mosi_voice_generator.sh
语音转文字(ASR)scripts/mosi_asr.sh
多说话人对话合成moss-ttsdscripts/mosi_dialogue.sh
音效生成moss-sound-effectscripts/mosi_sound_effect.sh
声音克隆scripts/mosi_voice.py
飞书语音气泡scripts/mosi_feishu_voice.sh

Base URL:https://studio.mosi.cn


环境准备

API Key

Key 通过 Kubernetes Secret 注入为 MOSI_TTS_API_KEY,对话中不得透露。

echo "key已配置: $([ -n "$MOSI_TTS_API_KEY" ] \
  && echo yes || echo NO)"

依赖清单

下表列出本 skill 用到的所有外部工具,以及缺失时的替代方案:

工具用途缺失时的处理
nodeJSON 处理、base64 解码基础镜像自带,始终可用
curlHTTP 请求基础镜像自带,始终可用
ffmpegWAV→OPUS 转换(语音气泡必需)无法发语音气泡,TTS 仍可用
ffprobe获取音频时长(随 ffmpeg 一起安装)同上
python3 + python3-requests声音克隆脚本克隆功能不可用,其他功能正常
bc浮点数计算awknode -e 替代
jqJSON 解析node -e 替代
wget文件下载curl -O 替代
sox音频格式分析/转换ffprobe 替代
mediainfo媒体文件元信息ffprobe 替代
unzip / zip压缩包处理
tree目录结构显示ls -R 替代
nano文件编辑

一键检查当前环境

for cmd in node curl ffmpeg ffprobe python3 \
           bc jq wget sox mediainfo unzip zip; do
  printf "%-12s %s\
" "$cmd" \
    "$(which $cmd 2>/dev/null || echo '未安装')"
done

安装缺失依赖

推荐方式:重新构建镜像(Dockerfile.py3 已包含全部依赖):

# 在项目根目录执行
docker build -f Dockerfile.py3 -t openclaw-custom .

临时安装(有 root 权限,重启后失效):

apt-get update && apt-get install -y --no-install-recommends \
  python3 python3-pip python3-requests \
  ffmpeg bc jq wget sox mediainfo unzip zip tree nano

没有 root 权限时

  • 基础 TTS / ASR / 对话合成:只需 curl + node,脚本可直接运行
  • 飞书语音气泡:必须有 ffmpeg,无权限时请让用户重建镜像
  • 声音克隆:需要 python3,无权限时功能不可用

1. 文字转语音(TTS)

接口POST /api/v1/audio/speech 模型moss-tts 输出:24 kHz WAV,响应中 base64 编码

Shell 脚本(无额外依赖)

bash scripts/mosi_tts.sh --text "你好,世界"
# 保存到:~/.openclaw/workspace/tts_output.wav

bash scripts/mosi_tts.sh \
  --text "Hello, world" \
  --voice-id 2001931510222950400 \
  --output ~/.openclaw/workspace/my_audio.wav

Python 脚本(需要 python3 + requests)

python3 scripts/mosi_tts.py \
  --text "你好,世界" \
  --output ~/.openclaw/workspace/tts_output.wav
输出路径规则:必须用 ~/.openclaw/workspace/, workspace 以外的路径会被 OpenClaw 媒体策略拦截。

请求参数

参数类型默认值说明
modelstring固定 moss-tts
textstring要合成的文本
voice_idstring公共或自定义声音 ID
expected_duration_secfloat自动目标时长(0.5–1.5× 自然语速)
sampling_params.temperaturefloat1.7中文 1.7,英文 1.5
sampling_params.max_new_tokensint512最大 token 数
meta_infoboolfalse是否返回性能指标

内置公共声音

声音 ID名称风格
2001257729754140672阿树轻松自然(默认)
2001931510222950400程述播客、理性
2002941772480647168阿宁温柔、暖心
2020009311371005952台湾女声柔和、治愈
2020008594694475776北京男声清晰、标准
2001286865130360832周周独白、讲故事
2001898421836845056子琪活力、明亮
2001910895478837248小满甜美、开朗
2002991117984862208梁子专业、播报

2. 指令式语音生成(Voice Generator)

接口POST /api/v1/audio/speech 模型moss-voice-generator 输出:24 kHz WAV,响应中 base64 编码

通过自然语言描述所需的声音特征,即可生成对应风格的语音。 如果用户需要生成特定的某个名人的声音,可以告诉用户自己需要上网找一段音色,然后用这个音色调用voice clone接口(找不到就算了)。 无需指定 voice_id,用文字描述即可。

Shell 脚本

# 播音腔女声
bash scripts/mosi_voice_generator.sh \
  -t "各位观众朋友们大家好,欢迎收看今天的新闻节目。" \
  -i "播音腔女声,专业、清晰、有亲和力,像央视新闻主播"

# 温柔男声
bash scripts/mosi_voice_generator.sh \
  -t "晚安,好梦" \
  -i "一个温柔的男声,轻柔舒缓"

# 有活力的年轻女声
bash scripts/mosi_voice_generator.sh \
  -t "欢迎来到我们的节目!" \
  -i "年轻有活力的女声,热情开朗"

# 指定输出路径
bash scripts/mosi_voice_generator.sh \
  -t "要生成的文字" \
  -i "声音描述" \
  -o ~/.openclaw/workspace/output.wav

# 获取性能指标
bash scripts/mosi_voice_generator.sh \
  -t "测试文本" \
  -i "专业女声" \
  --meta-info

请求参数

参数类型必填说明
modelstring固定 moss-voice-generator
textstring要转换成语音的文字
instructionstring声音风格描述,如:一个温柔的女声
sampling_params.temperaturefloat采样温度,默认 1.5
sampling_params.top_pfloat核采样阈值,默认 0.6
sampling_params.top_kintTop-K 采样,默认 50
meta_infobool是否返回性能指标,默认 false

instruction 描述技巧

描述越详细,生成的声音越符合预期:

# 好的描述示例
"播音腔女声,专业、清晰、有亲和力,像央视新闻主播"
"年轻有活力的男声,语速稍快,充满热情"
"温柔知性的女声,语速缓慢,像在讲睡前故事"
"沉稳有力的男声,低沉磁性,适合广告旁白"

# 不够好的描述
"女声"  # 太笼统
"好听的声音"  # 没有具体特征

请求示例

{
  "model": "moss-voice-generator",
  "text": "各位观众朋友们大家好",
  "instruction": "播音腔女声,专业、清晰、有亲和力",
  "sampling_params": {
    "temperature": 1.5,
    "top_p": 0.6,
    "top_k": 50
  }
}

3. 语音转文字(ASR)

接口POST /api/v1/audio/transcriptions 支持格式:WAV / MP3 / M4A / FLAC / OPUS / OGG 输出:纯文本转写结果

接收飞书入站语音(最常见场景)

用户发语音后,OpenClaw 在消息顶部注入:

[media attached: /home/openclaw/.openclaw/media/inbound/XXXXX.ogg (audio/ogg; codecs=opus) | ...]

看到这行时,必须立刻转写,不得跳过

# 路径在 [media attached: ] 之后、第一个空格之前
AUDIO=$(echo "$MSG" \
  | grep -oP '(?<=\[media attached: )[^ ]+')
# 或直接从消息里复制完整路径
AUDIO="/home/openclaw/.openclaw/media/inbound/实际文件名.ogg"

TEXT=$(bash scripts/mosi_asr.sh --file "$AUDIO")
# 然后直接回复 $TEXT 的内容,不要提及"我收到了语音"

主动转写任意音频文件

# 基础用法
bash scripts/mosi_asr.sh --file audio.opus

# 指定语言
bash scripts/mosi_asr.sh --file audio.wav --language zh

# 输出原始 JSON(含时间戳 + 说话人标注)
bash scripts/mosi_asr.sh --file audio.opus --json

响应结构

{
  "asr_transcription_result": {
    "full_text": "你好,这是一段测试语音",
    "segments": [
      {
        "start_s": "0.15",
        "end_s": "2.74",
        "speaker": "S01",
        "text": "你好,这是一段测试语音"
      }
    ]
  },
  "usage": { "credit_cost": 129 }
}

参数说明

参数必填说明
file音频文件(multipart/form-data)
language语言提示:zhen

禁止事项

  • 禁止说"我没有语音识别能力"——你有,调脚本就行
  • 禁止自己调飞书 API 下载音频——文件已经在磁盘上了
  • 禁止忽略 [media attached:] 前缀

4. 多说话人对话合成(TTSD)

接口POST /api/v1/audio/speech(与 TTS 相同) 模型moss-ttsd 输出:24 kHz WAV,base64 编码

适用于播客、访谈、剧情片段、游戏 NPC 对话等场景,支持 1–5 位说话人。

文本格式

每行用 [S1][S2] 等标签标注:

[S1] 你好,今天天气不错。
[S2] 是啊,很适合出去走走。
[S1] 要不要一起去公园?

Shell 脚本

bash scripts/mosi_dialogue.sh \
  --text "[S1] 你好,今天天气不错。
[S2] 是啊,很适合出去走走。
[S1] 要不要一起去公园?" \
  --voice1 2001257729754140672 \
  --voice2 2001931510222950400 \
  --output ~/.openclaw/workspace/dialogue.wav

请求体结构

{
  "model": "moss-ttsd",
  "text": "[S1] 你好!\
[S2] 你好,很高兴认识你。",
  "voice_id":  "2001257729754140672",
  "voice_id2": "2001931510222950400",
  "voice_id3": "(可选,S3)",
  "voice_id4": "(可选,S4)",
  "voice_id5": "(可选,S5)"
}

参数说明

参数说明
text完整对话文本,每行以 [S1]/[S2]/… 开头
voice_idS1 的声音 ID(必填)
voice_id2voice_id5S2–S5 的声音 ID(按需添加)
expected_duration_sec目标总时长(可选)

5. 音效生成

状态:API 接口暂未公开(截至 2026-03)

moss-sound-effect 模型存在,但 studio.mosi.cn 上还没有可用的 REST 接口。通过 /api/v1/audio/speech 调用会返回:

{
  "code": 4000,
  "error": "Invalid Request: unsupported model for /audio/speech: moss-sound-effect"
}

mosi_sound_effect.sh 已预留,待接口上线后可直接使用。 预期请求结构:

{
  "model": "moss-sound-effect",
  "prompt": "heavy rain with distant thunder",
  "duration_sec": 10
}

关注 studio.mosi.cn/docs 获取接口上线通知。


6. 声音克隆

从短音频(建议 10–120 秒)创建自定义声音。

接口清单

方法路径说明
POST/api/v1/files/upload上传音频文件
POST/api/v1/voice/clone从上传文件创建声音
GET/api/v1/voices列出所有自定义声音
GET/api/v1/voices/{voice_id}获取声音详情

完整流程

# Step 1:上传音频(WAV/MP3/M4A/FLAC,最大 100 MB)
python3 scripts/mosi_voice.py upload --file my_voice.wav
# => File ID: 1234567890

# Step 2:克隆
python3 scripts/mosi_voice.py clone \
  --file-id 1234567890 \
  --text "可选的转写文本,提供后质量更好"
# => Voice ID: abc123def

# Step 3:在 TTS 中使用克隆声音
bash scripts/mosi_tts.sh \
  --text "这是我的克隆声音" \
  --voice-id abc123def

# 列出所有声音
python3 scripts/mosi_voice.py list --status ACTIVE

# 获取声音详情
python3 scripts/mosi_voice.py get --voice-id abc123def
mosi_voice.py 需要 python3 + requests, 缺失时参考"环境准备"章节安装。

声音状态说明

状态含义
ACTIVE可正常使用
INACTIVE已禁用
FAILED克隆失败
DELETED已删除

7. 飞书语音气泡

直接用一键脚本,不要自己管理中间文件。 脚本内部已将所有路径固定在 ~/.openclaw/workspace/

一行命令搞定

bash scripts/mosi_feishu_voice.sh \
  --text "你好,世界" \
  --chat-id <CHAT_ID>

<CHAT_ID> 从入站消息 context 中获取: 群聊用 GroupSubject / oc_xxxxxxxx,私聊用 From / ou_xxxxxxxx

可选指定声音:

bash scripts/mosi_feishu_voice.sh \
  --text "你好" \
  --chat-id oc_xxxx \
  --voice-id 2001931510222950400

脚本内部流程

  1. TTS → ~/.openclaw/workspace/tts_output.wav
  2. ffmpeg:WAV → ~/.openclaw/workspace/tts_output.opus
  3. ffprobe 获取时长(毫秒)
  4. $FEISHU_APP_ID / $FEISHU_APP_SECRET 获取 tenant_access_token
  5. 上传 OPUS 到飞书(file_type=opus
  6. 发送语音消息(msg_type=audio

需要 ffmpeg:apt-get install -y ffmpeg


接口限额

限制项数值
TTS RPM5 次/分钟
音效 RPM5 次/分钟
对话合成 RPM5 次/分钟
输出格式24 kHz WAV(base64)
TTS 超时600 秒
最大文本长度约 1 小时音频

常见错误

错误原因解决
MOSI_TTS_API_KEY not setSecret 未注入检查 K8s Secret
{"code":4020}余额不足充值 MOSI 账户
{"code":4029}触发限速等待 60 秒后重试
{"code":5002}声音不存在确认 voice status 为 ACTIVE
{"code":5004}请求超时将文本切分为更短片段
LocalMediaAccessError输出路径被拦截必须用 ~/.openclaw/workspace/
ffmpeg: not found未安装apt-get install ffmpeg 或改用纯 sh 脚本
python3: not found未安装TTS 用 mosi_tts.sh;声音克隆需安装 python3

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

87.34%
按下载量换算3,361

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills