DASHSCOPE HUGGING FACE DEMO MODELSCOPE DEMO

Qwen3-TTS-Flash is a flagship text-to-speech model that supports multi-timbre, multi-lingual, and multi-dialect speech synthesis. It aims to produce natural and expressive speech and is available via Qwen API.

Major Improvements:

  • Richer Timbres Support: Qwen3-TTS offers over 49 high-quality timbres, covering a range of genders, ages, regional traits, and character profiles to meet diverse scenario needs. Explore a variety of roles such as playful and quirky Momo, the warm and supportive childhood friend Ono Anna, the proud and forthright “tough girl” Vivian, the strict instructor Elias, the wise elder Eldric Sage, the cute loli Bunny, and many more.

  • Enhanced Multilingual and Dialect Capabilities: Qwen3-TTS supports 10 major languages, including Chinese, English, German, Italian, Portuguese, Spanish, Japanese, Korean, French, and Russian. On the MiniMax TTS multilingual test set, the model achieves a lower average word error rate (WER) than MiniMax, ElevenLabs, and GPT-4o-Audio-Preview. It also supports dialect synthesis for more dialects, including Mandarin, Hokkien, Wu, Cantonese, Sichuanese, Beijing, Nanjing, Tianjin, and Shaanxi dialects, authentically reproducing local accents and linguistic nuances.

  • More Natural and Human-like Prosody/Speech Rates: Compared to the previous version, Qwen3-TTS has greatly improved its ability to adaptively adjust speech rate and prosody according to textual input, achieving a level of human-likeness that closely approximates real human speech.



Samples

Qwen3-TTS offers a diverse range of distinctive, emotionally rich timbres for users to choose from, meeting the needs of a variety of scenarios. Here are some sample synthesized samples:

TimbreLanguageTextSample
RyanEnglishYo, I'm Ryan! The guy who still uses "20 3 4 5 6" as his password... and no, I haven't changed it since 2015! By day I fix computers, by night I tweak my diet... well, sometimes. When I'm not geeking out over code, you'll find me trying to invent new ways to fail at cooking! My last experiment? A soufflé that looked like a melted candle... but hey, it tasted like victory! Now, who's ready to see me blow up a microwave?
JenniferEnglishHi there! I'm Jennifer!Ah-ha,I love learning new things and meeting awesome people like you. When I'm not working as an actor, you'll find me exploring cafes, playing guitar, or just laughing at my own bad jokes. Always up for an adventure—let's connect and make great memories together!
KaterinaEnglishHello! How are you today? I'm doing great, thank you! Hi everyone! My name is Katerina, and I'm thrilled to be here today. By day, I’m an actor, but when I’m not performing, you’ll find me exploring new hobbies—like travel ,though I once accidentally booked a one-way ticket to Iceland... but hey, the Northern Lights were worth it!
AidenEnglishHi everyone! I’m Aiden—originally from Los Angeles, though I swear I spend half my life between the mic and the stove. By day, I work with my voice: narrating, guiding, sometimes just helping words sound like they’re meant to be heard. But come evening? You’ll find me elbow-deep in garlic and herbs, chasing that perfect balance of crisp and tender, sweet and sharp. I’ve always believed good communication—whether it’s a recipe or a story—should feel like a conversation over dinner: warm, clear, and full of heart. So really… it’s a pleasure to meet you here.
EliasChinese比如说我上次做的那个比较文学的课题,这个团队当中有研究东亚文学的,他就提出了不少我没有想到过的角度。嗯,但是核心的部分呢,我还是喜欢自己去琢磨啊,保证思路的连贯。
BunnyChinese我现在啊已经形成条件反射了!只要一打开外卖盒,手就会自动去摸遥控器或者手机。有时候去朋友家吃饭,人家正儿八经的在餐桌上边吃边聊天。
CherryChinese嗨~今天过得怎么样呀?刚路过那家你爱喝的奶茶店,想着你要是累了,咱俩待会儿一块儿去坐坐?外面阳光可好了,照得人心里暖乎乎的~
MaiaChinese其实你现在难过是很正常的,谁都会有低谷的时候。我挺懂你这种感受的,别对自己太苛刻了,真的没关系。有些事情慢慢来就好,给自己点时间。如果你想聊天或者吐槽,我一直都在,随时可以找我。我相信你一定能熬过去。
MomoChinese我命令你们这些小男生,晚上早一点睡觉,听到没有?要是被我发现谁还偷玩手机,我就……我就生气给你们看哦!
NofishChinese哎,你瞧那边,那个塔。好高啊!像一根细细的冰棍插在云朵里。每天早上都有小鸟飞过。你看!它们在塔尖上绕圈圈。塔身是亮亮的蓝色,还会反光呢。底下有一个喷泉,水珠跳来跳去,像在和人打招呼似的。
MoonChinese如果喜欢,就把这一切当作是荣耀,而不是炫耀。心怀荣耀,即战无不胜。
BellaChinese嘿嘿,哈,你这个样子好像个小呆瓜呀。谁说我在干坏事啦,才没有呢。不准批评我,不然我就哭给你看,哼!
ArthurChinese种地前得先敬三碗酒。头三垄地得祭土地神,中间三垄得给龙王留条活路,最后一垄得倒进井里喂井龙王——这老家伙要是半夜拽你裤腿讨水喝,可咋办?我们村那棵老槐树,根须长得像太极图案,听说半夜三更还能听见它跟嫦娥下棋呢!
NiniChinese哥哥你怎么了呀?看你从刚才就没怎么说话,眉头还皱着,是不是遇到啥烦心事了?要是工作上不顺心跟我说说呗,就算我帮不上大忙,听你念叨念叨也能舒服点呀。
PipChinese你快看,路边的小狗狗们凑在一起玩来玩去,绝对是在交换超级重要的秘密了。那只黄色的小狗肯定在跟黑色的小狗说,昨天我在三号垃圾桶旁边捡到了半根火腿肠,香到不行唉,今天要不要一起去看看呢?
VincentChinese话说这长安秋夜,诸位听好了!天边残星闪烁,雁阵南归,高楼之上,笛声悠扬,哀婉如泣。紫菊半开,红莲凋落,渔舟鲈鱼鲜美,却无人归。霜露渐浓,南冠楚囚之故事,仿佛重现啊!
BellonaChinese再有啊,就是评书表演当中容易被忽视的,其实很重要的一个细节是什么呢?就是气口儿和眼神儿。尤其说现场的时候儿啊,咱们说的现场,气口儿呢,就不光是指这个换气儿,更指的是节奏中的停顿和留白。

Qwen3-TTS provides comprehensive support for a variety of Chinese dialects, accurately capturing regional accents, tones, and local charm. Here are some sample synthesized samples:

TimbreAccentTextSample
DylanBeijing别提了!跟对门儿老王他们搓到后半夜,输得裤衩都快保不住了!你说我这手气,邪了门儿了。我呀,还是回家喂我的画眉要紧。瞧见没?今儿个叫得倍儿欢。
DylanNanjing哎——你搞什么鬼啊?骑个车横冲直撞的!眼珠子长后脑勺上啦?再这么骑,老子把你车子掀翻掉!真当老子脾气好是不是?!
RoyHokkien唉哟,阿嬷,今仔日涨工啦,水电、肥料拢涨,我哪敢乱开价?
EricSichuan哎哟我个先人板板!你摸张牌磨蹭半天搞啥子嘛?打个二筒犹豫三分钟,脑壳进水嗦?快点嘛——再不动手老子要睡着咯!
KikiCantonese今晚打邊爐好唔好啊?突然间好想食肥牛同埋響鈴卷啊!打边炉最开心就係一班人围埋一齐慢慢倾慢慢食。你仲想加啲咩料落去?我就想食鱼皮饺同埋墨鱼丸啦,仲可以饮埋冻柠茶,爽呀!不如我哋顺便去买埋啲蔬菜,芋头、金针菇都唔错喎,咁先齐全啊嘛!
RockyCantonese咁诶话说有一次咧我哋诶亚云喺,喺广州。就好似系搞一个开幕式系亚云嘅开幕式,我哋去我哋去拍。嗯,我唔记得咗开幕式定闭幕式嘞。咁咧就嘶诶,我哋有一个有一个看台咧专门系俾所有嘅国内、国外嘅媒体去去拍嘅一个看台。
MarcusShaanxi走咧——!西安城的老城墙,比馍还硬朗!biangbiang面一甩,黄河水都得喊声‘姐’!兵马俑列阵,秦腔吼起来,羊肉泡馍配冰峰,酸汤水煮活了三千年!来陕西,不光是看历史,是要把《长恨歌》唱进肉夹馍里,把汉唐风揉进擀面杖里
PeterTianjin哎哟喂!天津卫的码头,鱼龙混杂也风雅~狗不理包子褶儿十八,炸糕甜得黏牙,煎饼果子卷上天!
SunnySichuan哎呀~你来啦?等你好久咯!我刚切了西瓜,冰冰凉凉的,甜得很,专门给你留的最大一块!快进来嘛,站到太阳底下晒黑咯,我可要心疼咯~

Qwen3-TTS also supports authentic and natural multilingual timbres, with speech patterns that closely resemble native pronunciation. Here are some sample synthesized samples:

TimbreLanguageTextSample
LennGermanKannst du bitte die Musik leiser stellen? Ich kann mich nicht konzentrieren.
DolceItalianCiao, bellissima! Hai quel look che mi fa girare la testa—sempre impeccabile. Stasera c’è un nuovo lounge in centro… ci vai con me? Prometto: niente di noioso, solo stile e buona musica.
Ono AnnaJapaneseえー、困るね…。今日、絶対遅刻したくないのに。でもタクシーって高いし、混んでそうじゃない?どうしよう、もうちょっと様子見た方がいいかな。でも、間に合わなかったら最悪だし…。あー、やっぱり電車って信用できない時あるよね。○○ちゃんはどうする?一緒にタクシー乗る?
Radio GolBrazilianAh… minha infância era isso:o cheiro de mato molhado,o canto do sabiá,e a bola de meia rolando na calçada quente.Hoje, cada vez que ouço um samba de raiz…meu peito aperta —não de tristeza, não…mas da alegria tão grande que ainda cabe no coração!
BodegaSpanish¡Hola, chaval! ¿Qué tal? ¡Ven acá, hombre! Hoy el sol brilla, el café está recién hecho y la vida es bonita. ¡Sonríe un poco, que no es pa’ tanto! ¡Dale, vamos a tomarnos un cafecito!
SoheeKorean안녕하세요! 오늘 날씨 진짜 좋네요~ ☀️ 방금 길에서 강아지 봤는데 너무 귀여워서 사진 찍었어요! 혹시 커피 한 잔 할래요? 제가 살게요—오늘 기분이 완전 최고라서! 😊
EmilienFrenchTu sais… chaque fois que je te vois, Paris s’arrête de respirer. Même la Seine retient son souffle. Viens, on va se perdre dans les rues — juste toi et moi, ce soir.

Performance

How to use

Use Qwen3-TTS with Qwen API is simple. We demonstrate a code snippet for you to play with it below:

# Please install the latest version of the DashScope SDK.
    import os
    import requests
    import dashscope
    
    text = "Let me recommend a T-shirt to everyone. This one is really super good-looking, and the color is very classy. It’s also a great piece to mix and match with anything, so you can totally buy it without hesitation. It looks amazing and is very forgiving on the figure—no matter what body type you have, it will look great on you. Highly recommend you place an order!"
    # Usage of the SpeechSynthesizer Interface: dashscope.audio.qwen_tts.SpeechSynthesizer.call(...)
    response = dashscope.MultiModalConversation.call(
        model="qwen3-tts-flash-2025-11-27",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        text=text,
        voice="Ryan",
        language_type="English", # It is recommended to match the language with the text in order to obtain correct pronunciation and natural intonation.
        stream=False
    )
    audio_url = response.output.audio.url
    save_path = "downloaded_audio.wav"  # Custom save path.
    
    try:
        response = requests.get(audio_url)
        response.raise_for_status()  # Check whether the request was successful.
        with open(save_path, 'wb') as f:
            f.write(response.content)
        print(f"The audio file has been saved to: {save_path}")
    except Exception as e:
        print(f"Download failed: {str(e)}")
    

Citation

If you find our model useful in your research, please consider citing it 📝 :)

@misc{qwen3_tts_202511,
      author       = {Qwen Team, Alibaba},
      title        = {Qwen3-TTS Update! 49 Timbres + 10 Languages + 9 Dialects},
      year         = {2025},
      url          = {https://qwen.ai/blog?id=qwen3-tts-1128},
      urldate      = {2025-12-01}
    }