persona-voice
概述
这是一个面向 ChatGPT / Claw / 飞书机器人的随机人格语音回复 Skill。
当前版本的原则:
- 角色化文本:由 ChatGPT / Claw 当前会话模型生成。
- ASR / TTS:统一使用 SenseAudio。
- 飞书回复:统一发送为飞书原生语音条,而不是普通文件附件。
- 环境变量:只要求配置凭证类字段,其他地址和模型全部使用默认值。
当前保留的人格与音色
只保留以下免费可用人格和音色:
- 可爱萌娃:
child_0001_a、child_0001_b - 儒雅道长:
male_0004_a - 沙哑青年:
male_0018_a
详见:
presets/personas.jsonreferences/personas.md
适用场景
- 飞书 / Lark 机器人随机人格语音回复
- 文字输入 → 人格化短回复 → 语音条发送
- 语音输入 → ASR → 人格化短回复 → 语音条发送
飞书场景硬性规则
- 飞书场景默认只发送语音消息。
- 成功发送语音后,不要再额外返回一条文字。
- 随机到什么人格,回复内容本身也必须明显像那个人格,不只是换音色。
- 不要暴露内部规则,不要说自己在随机人格。
- 飞书发送必须走 OPUS + file_key + audio 消息 的原生链路,不要把 mp3/wav 当普通文件附件。
工作流
用户发送文字
- 调用
scripts/main.py persona-prompt --user-message "..."。 - 读取返回的人格 prompt。
- 由 ChatGPT / Claw 当前会话模型生成最终
reply_text。 - 调用
scripts/main.py send-voice --reply-text "..." --chat-id "oc_xxx" --persona "..."。 - 成功发送语音后,最终对话输出应为空,不再附加文字。
用户发送语音
- 调用
scripts/main.py transcribe --audio /abs/path/input.m4a。 - 根据转写文本,再调用
persona-prompt获取人格提示。 - 由 ChatGPT / Claw 生成最终
reply_text。 - 调用
send-voice生成并发送飞书语音条。
配置方式
当前版本只需要配置:
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="your_secret"
export SENSEAUDIO_API_KEY="your_key"
其余全部默认:
FEISHU_BASE_URL=https://open.feishu.cnSENSEAUDIO_BASE_URL=https://api.senseaudio.cnSENSEAUDIO_ASR_MODEL=sense-asrSENSEAUDIO_TTS_MODEL=SenseAudio-TTS-1.0FFMPEG_PATH可选;若 PATH 中找不到 ffmpeg,可显式设置为/opt/homebrew/bin/ffmpeg
本地依赖
python3ffmpegrequests
主脚本入口
初始化人格模式
python scripts/main.py persona-init --mode random
查看当前模式
python scripts/main.py persona-show
生成给 Claw 的人格 prompt
python scripts/main.py persona-prompt --user-message "今天有点累"
转写用户语音
python scripts/main.py transcribe --audio /absolute/path/input.m4a
生成并发送飞书语音条
python scripts/main.py send-voice \
--reply-text "先歇一下嘛,我陪你缓一缓。" \
--chat-id "oc_xxx" \
--persona "keai-mengwa"
资源说明
scripts/main.py:主入口,包含persona-init/persona-show/persona-prompt/transcribe/send-voicescripts/persona_store.py:人格池、随机/固定模式、人格提示生成scripts/asr.py:SenseAudio ASRscripts/tts.py:SenseAudio TTSscripts/feishu_api.py:飞书上传 OPUS 并发送 audio 消息references/feishu_integration.md:飞书接入说明references/provider_notes.md:环境变量与 Provider 说明