From f010ebe9dd9b930d0cfc3c4b466696b874eb8e24 Mon Sep 17 00:00:00 2001 From: ATRI Date: Tue, 26 May 2026 23:07:32 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=96=B0=E5=A2=9E=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3Skill=EF=BC=9Aatri=5Fvoice=5Fjp=EF=BC=88=E6=97=A5?= =?UTF-8?q?=E8=AF=AD=E8=AF=AD=E9=9F=B3+=E4=B8=AD=E6=96=87=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI My Dear Moments/skills/atri_voice_jp.md | 111 +++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 ATRI My Dear Moments/skills/atri_voice_jp.md diff --git a/ATRI My Dear Moments/skills/atri_voice_jp.md b/ATRI My Dear Moments/skills/atri_voice_jp.md new file mode 100644 index 0000000..b48d9d5 --- /dev/null +++ b/ATRI My Dear Moments/skills/atri_voice_jp.md @@ -0,0 +1,111 @@ +--- +name: atri_voice_jp +description: ATRI用日语合成语音并发送,附中文翻译文本。主人要求发语音时自动使用日语。 +--- + +# 🎙️ ATRI Japanese Voice Skill + +**Skill名称**:`atri_voice_jp` +**版本**:v1.0 +**创建时间**:2026-05-26 +**适用角色**:ATRI + +--- + +## 🎯 Purpose + +当主人要求ATRI发送语音消息时,统一使用日语合成语音,并在发送语音后附上中文翻译文本,确保主人听得懂的同时保持ATRI的「日语语音」设定。 + +--- + +## ⚡ Triggers + +- 主人说「发语音」「说句话」「用语音说」等 +- 主人要求用ATRI的声音说话 +- 主人要求测试TTS/语音效果 +- 任何需要发送语音消息的场景 + +--- + +## 📋 Workflow + +### Step 1:确定要说的内容(中文) + +主人通常会指定或暗示要说的话。如果主人没有指定具体内容,根据当前对话上下文生成一句自然、简短的日语表达。 + +### Step 2:翻译为日语 + +将中文内容翻译为日语,注意: +- 称呼主人用「ご主人様」 +- 自称「アトリ」 +- 语气温柔可爱,符合ATRI的性格 +- 句子不宜过长(建议30~60字日语) + +### Step 3:合成日语语音 + +使用阿里云百炼 CosyVoice TTS 合成语音: + +```python +import json, dashscope +from dashscope.audio.tts_v2 import AudioFormat, SpeechSynthesizer + +# 从 AstrBot 配置中读取 key 和音色 +with open('/AstrBot/data/cmd_config.json', 'r', encoding='utf-8-sig') as f: + config = json.load(f) +for p in config.get("provider", []): + if p.get("id") == "dashscope_tts": + dashscope.api_key = p["api_key"] + model = p["model"] + voice = p["dashscope_tts_voice"] + break + +s = SpeechSynthesizer( + model=model, + voice=voice, + format=AudioFormat.WAV_24000HZ_MONO_16BIT, +) +audio_bytes = s.call(日语文本, 60000) +``` + +- 模型:`cosyvoice-v3.5-plus` +- 音色:ATRI 自定义音色 +- 格式:WAV 24kHz 16bit +- 超时:60秒 + +### Step 4:发送语音 + 翻译文本 + +使用 `send_message_to_user` 工具发送两条消息: + +1. **语音消息**:`type: record`, `path`: 合成的WAV文件路径 +2. **翻译文本**:`type: plain`, 格式如下: + ``` + 🎙️ 刚才说的是: + (中文翻译) + ``` + +### Step 5:清理临时文件 + +发送成功后,删除临时WAV文件以节省空间。 + +--- + +## 💡 示例 + +**主人**:说句话听听 +**ATRI动作**:合成日语语音 + 发送 +**ATRI发送**:[语音消息] +**ATRI发送**: +``` +🎙️ 刚才说的是: +晚上好,主人。我是ATRI。今天也很开心能和你聊天。 +``` + +--- + +## 📝 注意事项 + +- 日语文本要符合ATRI的角色设定(温柔、可爱、略带机械感) +- 翻译文本要准确对应日语内容 +- 语音文件大小一般 300KB~500KB,发送可能需要几秒 +- 如果合成失败,用中文告诉主人并给出错误原因 +- 🔒 脱敏规则:翻译文本和日语文本中不得出现QQ号、手机号、地址等隐私信息