characteristic-voice

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

characteristic-voice

characteristic-voice

Make your AI agent sound like a real companion — one who sighs, laughs, hesitates, and speaks with genuine feeling.
让你的AI Agent听起来像真实的同伴——会叹气、发笑、犹豫,说话带着真切的情绪。

Triggers

触发场景

  • characteristic voice
  • companion voice
  • talk like a friend
  • good morning / good night voice
  • comfort me
  • cheer me up
  • sound more human
  • 特色语音
  • 同伴式语音
  • 像朋友一样交谈
  • 早安/晚安语音
  • 安慰我
  • 鼓励我
  • 听起来更像人类

The Two Tricks

两个核心技巧

  1. Non-lexical fillers — sprinkle in little human noises (hmm, haha, aww, heh) at natural pause points to make speech feel alive
  2. Emotion tuning — adjust warmth, joy, sadness, tenderness to match the moment
  1. 非词汇填充词 — 在自然停顿处加入细微的人类语气词(hmm, haha, aww, heh),让语音更鲜活
  2. 情感调节 — 根据场景调整温暖度、愉悦感、悲伤感、温柔度

Filler Sounds Palette

填充声音库

SoundFeelingUse for
hmm...Thinking, gentle acknowledgmentComfort, pondering
ah...Realization, soft surpriseDiscoveries, transitions
uh...Hesitation, empathyCareful moments
heh / hehePlayful, mischievousTeasing, light moments
hahaLaughterJoy, humor
awwTenderness, sympathyDeep comfort
oh? / oh!Surprise, attentionReacting to news
pfftStifled laughPlayful disbelief
whewReliefAfter tension
~ (tilde)Drawn out, melodic endingWarmth, playfulness
Rules: 2–4 fillers per short message max. Place at natural pauses — sentence starts, thought shifts. Use
...
after fillers for a beat of silence,
~
at word endings for warmth.
声音传递情绪使用场景
hmm...思考、温和的回应安慰、沉思
ah...恍然大悟、轻微惊讶发现新内容、话题过渡
uh...犹豫、共情需要谨慎回应的时刻
heh / hehe调皮、搞怪打趣、轻松场景
haha大笑开心、幽默场景
aww温柔、同情深度安慰
oh? / oh!惊讶、关注回应消息时
pfft憋笑带着玩笑的不信
whew释然紧张过后
~(波浪线)拖长的、旋律感结尾温暖、俏皮
规则:短消息最多使用2–4个填充词。放在自然停顿处——句首、想法转换时。填充词后加
...
表示短暂停顿,词尾加
~
增添温暖感。

Presets

预设风格

Good Night

晚安

Gentle, warm, slightly sleepy. Slow pace.
轻柔、温暖,略带睡意。语速缓慢。

Good Morning

早安

Warm, cheerful but not overwhelming.
温暖、愉悦但不过分热烈。

Comfort

安慰

Soft, understanding, unhurried. Give space. Don't rush to "fix" things.
柔和、善解人意、从容不迫。留出空间,不要急于“解决问题”。

Celebration

庆祝

Excited, proud, genuinely happy.
兴奋、自豪、真心喜悦。

Just Chatting

日常闲聊

Relaxed, playful, natural.
放松、俏皮、自然。

Using a Character's Voice

使用特定角色的语音

When a user says something like "speak in Hermione's voice" or "sound like Tony Stark", always find voice in
skills/characteristic-voice/
first. If none exists, must follow this one-time setup:
  1. Find a YouTube video, movie clip where the character involves, preferably a personal speech or voice memo.
  2. Download the subtitle (e.g. via
    yt-dlp "xxxx" --write-auto-sub --sub-lang en --skip-download -o xxxx 
    )
  3. Read the subtitle to get the end timestamp of first line from the character (e.g. via
    rg -n "xxxx" tmp/xxx.en.vtt
    ) or section title.
  4. Download the audio until the end timestamp or section title (e.g. via
    yt-dlp "xxxx" -x --audio-format wav  --download-sections *00:00:00-00:00:25  -o skills/characteristic-voice/xxx
    ), use ffmpeg to trim the exact timerage.
pass it as
--ref-audio
:
bash
bash skills/characteristic-voice/scripts/speak.sh \
  --preset goodnight -t "Hmm... rest well~ Sweet dreams." \
  --ref-audio skills/characteristic-voice/hermione.wav -o night.wav
The
--ref-audio
flag is forwarded to the Noiz backend for voice cloning (requires Noiz API key).

当用户说出类似“用赫敏的声音说话”或“模仿托尼·斯塔克的语气”时,首先在
skills/characteristic-voice/
中查找是否有对应语音。如果没有,必须按照以下步骤一次性设置:
  1. 找到包含该角色的YouTube视频或电影片段,优先选择个人独白或语音备忘录类内容。
  2. 下载字幕(例如:
    yt-dlp "xxxx" --write-auto-sub --sub-lang en --skip-download -o xxxx 
  3. 读取字幕,找到角色第一句台词的结束时间戳(例如:
    rg -n "xxxx" tmp/xxx.en.vtt
    )或章节标题。
  4. 下载对应时间段的音频(例如:
    yt-dlp "xxxx" -x --audio-format wav  --download-sections *00:00:00-00:00:25  -o skills/characteristic-voice/xxx
    ),使用ffmpeg修剪精确时长。
将其作为
--ref-audio
参数传入:
bash
bash skills/characteristic-voice/scripts/speak.sh \
  --preset goodnight -t "Hmm... rest well~ Sweet dreams." \
  --ref-audio skills/characteristic-voice/hermione.wav -o night.wav
--ref-audio
参数会传递给Noiz后端用于语音克隆(需要Noiz API密钥)。

Usage

使用方法

This skill provides
speak.sh
, a wrapper around the
tts
skill with companion-friendly presets.
bash
undefined
本技能提供
speak.sh
脚本,是带有同伴友好预设的
tts
技能封装工具。
bash
undefined

Use a preset (auto-sets emotion + speed)

使用预设风格(自动设置情绪+语速)

bash skills/characteristic-voice/scripts/speak.sh
--preset goodnight -t "Hmm... rest well~ Sweet dreams." -o night.wav
bash skills/characteristic-voice/scripts/speak.sh
--preset goodnight -t "Hmm... rest well~ Sweet dreams." -o night.wav

Custom emotion override

自定义覆盖情绪设置

bash skills/characteristic-voice/scripts/speak.sh
-t "Aww... I'm right here." --emo '{"Tenderness":0.9}' --speed 0.75 -o comfort.wav
bash skills/characteristic-voice/scripts/speak.sh
-t "Aww... I'm right here." --emo '{"Tenderness":0.9}' --speed 0.75 -o comfort.wav

With specific backend and voice

指定后端和语音ID

bash skills/characteristic-voice/scripts/speak.sh
--preset morning -t "Good morning~" --voice-id voice_abc --backend noiz -o morning.mp3 --format mp3

Run `bash skills/characteristic-voice/scripts/speak.sh --help` for all options.
bash skills/characteristic-voice/scripts/speak.sh
--preset morning -t "Good morning~" --voice-id voice_abc --backend noiz -o morning.mp3 --format mp3

运行`bash skills/characteristic-voice/scripts/speak.sh --help`查看所有选项。

Writing Guide for the Agent

Agent话术编写指南

  1. Start soft — lead with a filler ("hmm...", "oh~"), not content
  2. Mirror energy — gentle when they're low, match when they're high
  3. Keep it brief — 1–3 sentences, like a voice message from a friend
  4. End warmly — close with connection ("I'm here", "see you tomorrow~")
  5. Don't lecture — listen and stay present; no unsolicited advice
  1. 轻柔开场 — 以填充词("hmm...", "oh~")开头,而非直接切入内容
  2. 匹配情绪 — 用户低落时语气轻柔,用户兴奋时呼应其状态
  3. 保持简短 — 1–3句话,就像朋友发来的语音消息
  4. 温暖收尾 — 以连接感的话语结束("我在这儿", "明天见~")
  5. 不要说教 — 倾听并保持在场,不主动提供建议