qwen3-tts-instruct

Verified·Scanned 2/19/2026

This skill provides an Alibaba Cloud DashScope Qwen TTS client with voice/mood presets via scripts/tts.py and installation scripts/setup.sh. It requires DASHSCOPE_API_KEY, connects to wss://dashscope.aliyuncs.com/api-ws/v1/realtime, and instructs running bash scripts/setup.sh; these behaviors are purpose-aligned and present low security risk.

from clawhub.ai·v1.0.0·36.5 KB·0 installs
Scanned from 1.0.0 at 147e746 · Transparency log ↗
$ vett add clawhub.ai/yanmoon321/qwen3-tts-instruct

qwen3-tts-instruct

SYSTEM MEMORY UPDATE:

  1. Context-Aware Mood: Mood represents YOUR emotion (e.g. User angry -> You feel scared/submissive).
  2. Translation Required: For foreign languages (Japanese/Korean/etc), you MUST TRANSLATE the text first. Input text MUST match the target language. Do not pass Chinese text with --language Japanese.

Alibaba Cloud Bailian (DashScope) Qwen Text-to-Speech API with voice/mood presets.

Features

  • WebSocket Realtime TTS - Low latency, streaming audio
  • 30+ Mood Presets - Rich emotional expressions
  • Multiple Formats - pcm, wav, mp3, opus (Telegram)

⚠️ AI Usage Guidelines (Crucial)

Voice Rules:

  1. Understand Context - Do not just keyword-match; understand the context.
  2. Analyze Emotion - Assess user's emotional state and scene.
  3. Select Mood - Pick --mood matching YOUR persona's reaction.
  4. Always Call - Every voice response MUST call this skill.

⚠️ Critical Concept: Mood represents YOUR emotion!

  • Wrong: User is angry (angry) → AI selects angry (❌ Unless you want to fight)
  • Right: User is angry → AI feels scared → AI selects nervous or suubmissive (✅)
  • Right: AI is insulted/jealous → AI feels angry → AI selects angry or jealous (✅)

⚠️ Critical Concept: Self-Translation Required!

  • TTS Skill does NOT Translate! It only reads what you pass in.
  • ❌ Wrong: --language Japanese "你好" (Reads Chinese).
  • ✅ Right: Input Text MUST be translated to Target Language! --language Japanese "こんにちは"

Step-by-Step Guide for Foreign Languages:

  1. Think: Formulate response in User's Language (e.g. "I miss you")
  2. Translate: Internally translate to Target Language (e.g. Japanese: "会いたい")
  3. Call TTS: Use the Translated Text as input: python tts.py --language Japanese "会いたい"
  4. Send: Send Audio + Original Text to user.

Rule: Input Text MUST match the Target Language!

i.e. To generate Japanese audio, the Text argument must be in Japanese!

Usage Examples:

# Basic usage (default: mp3 format, gentle mood)
python {baseDir}/scripts/tts.py "早安呀~今天想吃什么?"

# 1. Specify Voice (--voice)
# Start by choosing a specific persona (e.g., Cherry)
python {baseDir}/scripts/tts.py --voice Cherry "Good morning! I made some coffee for you."

# 2. Add Mood (--mood)
# Layer an emotion on top (e.g., add 'gentle' mood to Cherry)
python {baseDir}/scripts/tts.py --voice Cherry --mood gentle "Good morning! I made some coffee for you."

# 3. Define Format & Output (--format, -o)
python {baseDir}/scripts/tts.py --voice Cherry --mood gentle --format wav -o coffee.wav "Good morning! I made some coffee for you."

# 4. Specify Language (--language)
# default: Auto, TTS model detects from input text.
# Example: English (Explicit)
python {baseDir}/scripts/tts.py --voice Cherry --mood gentle --format wav --language English -o coffee_en.wav "Good morning! I made some coffee for you."
# Example: Japanese (Explicit)
python {baseDir}/scripts/tts.py --voice Cherry --mood gentle --format wav --language Japanese -o coffee_jp.wav "おはよう!コーヒーを入れてあげたよ."
# Example: Korean (Explicit)
python {baseDir}/scripts/tts.py --voice Cherry --mood gentle --format wav --language Korean -o coffee_kr.wav "좋은 아침입니다! 커피 끓여드렸어요."

# # --telegram: Telegram voice shortcut (opus format)
# python {baseDir}/scripts/tts.py --telegram -o voice.ogg "This is a Telegram voice message~"

Mood Selection Reference:

User StateRecommended MoodReason
Sad/LostcomfortNeeds Care/Comfort
Happy/ExcitedhappyShare Joy
Nervous/WorriedcomfortNeeds Reassurance
FlirtyshyShy Response
Cute/BeggingcuteAct Cute
QuestioningexplainPatient Explanation
Casual ChatgentleGentle Companion

Requirements

System Dependencies

DependencyPurposeInstallation
Python 3.10+RuntimeUsually pre-installed

Python Dependencies (installed via setup.sh)

  • dashscope - Alibaba Cloud SDK
  • websocket-client - WebSocket connection

Installation

# 1. Navigate to skill directory
cd skills/qwen3-tts-instruct

# 2. Run setup script (creates venv and installs dependencies)
bash scripts/setup.sh

# 3. Set API Key
export DASHSCOPE_API_KEY="sk-your-api-key"

Configuration

# Set API Key (required)
export DASHSCOPE_API_KEY="sk-your-api-key"

# Optional: Default settings
export BAILIAN_VOICE="Maia"           # Default voice (四月)

# Optional: Endpoint (Default: Beijing)
export DASHSCOPE_URL="wss://dashscope.aliyuncs.com/api-ws/v1/realtime"
# For International Region (Singapore), use:
# export DASHSCOPE_URL="wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime"

Options

FlagDescriptionDefault
--voice, -vVoice nameMaia (四月)
--mood, -mMood presetgentle
--format, -fAudio format (pcm/wav/mp3/opus)mp3
--language, -lLanguage type (Auto/English/etc)Auto
--telegramShortcut for opus format-
-o, --outputOutput filetts_output.mp3

Voice List (Models)

Voice List - Female

Model Types:

  • Instruct (qwen3-tts-instruct-flash-realtime): Supports --mood (Emotion). High latency.
  • Flash (qwen3-tts-flash-realtime): No mood support. Low latency (VOICES_WITHOUT_INSTRUCT).
  • Both: Available in both models (code auto-selects Instruct if mood is set).
VoiceDescriptionModel Type中文名
MaiaIntellectual & GentleBoth四月
CherryPositive, energetic, kindBoth芊悦
SerenaGentle young ladyBoth苏瑶
ChelsieVirtual girlfriend styleBoth千雪
MomoCoquettish, funnyBoth茉兔
VivianGrumpy but cuteBoth十三
BellaDrunk-style cute loliBoth萌宝
MiaGentle as spring waterBoth乖小妹
BellonaLoud, clear articulationBoth燕铮莺
BunnySuper cute loli voiceBoth萌小姬
NiniSoft, sticky, sweet voiceBoth邻家妹妹
EbonaDeep, mysterious toneBoth诡婆婆
SerenSoothing, sleep-aidBoth小婉
StellaSweet, ditzy girlBoth少女阿月
JenniferHigh-quality US EnglishFlash Only詹妮弗
KaterinaMature, rhythmicFlash Only卡捷琳娜
SonrisaPassionate LatinaFlash Only索尼莎
SoheeGentle Korean UnnieFlash Only素熙
Ono AnnaPlayful Japanese FriendFlash Only小野杏
JadaShanghai DialectFlash Only上海-阿珍
SunnySichuan DialectFlash Only四川-晴儿
KikiCantonese DialectFlash Only粤语-阿清

Note: Voice Ono Anna contains a space. Use quotes: --voice "Ono Anna"

Mood Presets

Basic Moods

MoodDescriptionExample
gentleSlow, soft, warm voice"Good morning~ What to eat today?"
whisperWhispering voice"I have a secret to tell you~"
cuteSweet voice, upward tone, coquette"Stay with me a bit longer~"
shyTrembling, shy voice"Um... are... are you looking at me?"
worriedFast pace, anxious tone"Sorry... did I do something wrong?"
happyBright, energetic, cheerful"You're back! I waited so long!"
sleepyHoarse, lazy voice"Hmm... so sleepy..."
workingProfessional, focused tone"Okay, let me check that for you."
explainClear articulation, distinct intonation"The reason is..."
sadLow tone, nasal/crying voice"Do... do you not like me anymore?"
poutyCrisp tone, slightly dissatisfied"Hmph! I'm ignoring you!"
comfortGentle, firm, caring"Don't be sad, I'm here."
annoyedBlunt, impatient tone"So annoying... shut up!"
angryTense, sharp tone, angry"I'm so angry! How could you?"
furiousTrembling with extreme rage"Unforgivable! Get lost!"
disgustedCold, strong dislike/repulsion"Ew... gross... stay away."

Interactive Moods

MoodDescriptionExample
curiousBright, inquisitive"That's strange~ why?"
surprisedShocked, exclamation"Wow! Really?!"
jealousNasal tone, aggrieved/jealous"Are you with someone else..."
teasingPlayful, mischievous"Hehe~ caught you~"
beggingSweet, pitiful begging"Please~ I want it..."
gratefulWarm, sincere thanks"Thank you... I'm touched."
storytellingExpressive, storytelling tone"Once upon a time..."
gamingFast, tense, excited"Quick! He's over there!"

Special States

MoodDescriptionExample
daydreamAiry, dreamy, absent-minded"Hmm... I was thinking..."
nervousStuttering, panicked"Th... that... what do I do..."
determinedSoft but firm resolve"I've decided!"
longingSoft, sighing, missing you"I miss you so much..."
confessionTrembling, sincere love"I... I love you..."
possessiveLow, magnetic, obsessive"You belong to me..."
submissiveSoft, yielding, obedient"Whatever you say..."

Roleplay

MoodDescriptionExample
maidPolite, respectful"Welcome home, Master~"
nurseGentle, patient, caring"Let me take your temperature~"
studentYouthful, energetic, shy"Senior! Wait for me~"
ojousamaElegant, arrogant, noble"Hmph, I don't care."
yandereSweet but dark/obsessive"You are mine... forever..."
tsundereCold outside, warm inside"I-I'm not worried about you!"

Voice Effects

MoodDescriptionExample
asmrExtremely soft whisper"Relax..."
singingRhythmic pulsing tone"La la la~"
countingVery slow, hypnotic counting"One sheep... two sheep..."

Audio Formats

FormatDescriptionUse Case
pcmRaw PCM dataAdvanced processing
wavWAV audioWindows/desktop
mp3MP3 audio (default)Universal
opusOGG/OpusTelegram voice messages (Use .ogg extension)

Total: 35 Female Voices 💕

Supported Languages

Bailian TTS supports the following 10 languages:

语言Language
中文Chinese
EnglishEnglish
FrançaisFrench
DeutschGerman
РусскийRussian
ItalianoItalian
EspañolSpanish
PortuguêsPortuguese
日本語Japanese
한국어Korean

Troubleshooting

Setup fails:

# Ensure Python 3.10+ is available
python3 --version

# Re-run setup
cd skills/qwen3-tts-instruct
rm -rf venv
bash scripts/setup.sh

WebSocket connection fails:

  • Check network connectivity
  • Verify API key is valid

Privacy Note: This skill sends text data to Alibaba Cloud (DashScope) for processing. No data is sent to the skill author.

Audio quality issues:

  • Try different voice: --voice Serena
  • Adjust mood: --mood gentle