BanG Dream! (้‚ฆ้‚ฆ / ใƒใƒณใƒ‰ใƒช) character voices: Qwen3-TTS text-to-speech in Japanese, Mandarin and English

BanG Dream! (้‚ฆ้‚ฆ) character-voice TTS: 49 voices + 25 opt-in Our Notes voices (MyGO!!!!!, Ave Mujica, Girls Band Party, Our Notes). They speak Japanese, Mandarin and English with no reference audio. A Qwen3-TTS fine-tune. Unofficial fan project, not affiliated with Bushiroad, Craft Egg, the BanG Dream! project, the official ๅคขใƒŽ็ตๅ”ฑ voicebanks or the voice cast.

This revision (main) holds the 49 Girls Band Party, MyGO!!!!! and Ave Mujica voices. Persona variants such as ๅคง้ญ”ๅงซใ‚ใ“, ๆœˆใƒŽๆฃฎ Soyo / Sakiko and Mortis have their own rows.

  • Each voice is called by its speaker id. No reference audio is needed.
  • Three languages: Japanese (the characters' own language) plus Mandarin and English. Language ids, native replay and in-voice pseudo-Mandarin keep the Japanese accent out of Mandarin.
  • Built on Qwen3-TTS-12Hz-1.7B-Base, full fine-tune.
  • Try it online: demo Space (ZeroGPU; pick a voice, type text). Its output is AI-generated, under the same terms as this model.
  • 25 more voices, opt-in: the ournotes branch is a separate checkpoint (E9) with voices trained on BanG Dream! Our Notes story audio: 16 new characters (ไธ€ๅฎถDumb Rock!, ๅคข้™ๅคงใฟใ‚…ใƒผใŸใ„ใท, millsage, ๆฒขๆตทๅฅๅคš) and the Our Notes era of nine MyGO!!!!! / Ave Mujica characters (*_ournotes). Load it with revision="ournotes" for those 25 voices only, and keep using this revision for the 49 here. The demo Space serves both.

Code: github.com/starryark/bangdream-tts: data pipeline, fixed trainer, per-voice RVC route for native Mandarin, and every pre-registered plan and result.

Also known as: ้‚ฆ้‚ฆ ยท ้‚ฆๅคšๅˆฉ ยท BanG Dream! ๅฐ‘ๅฅณไนๅ›ขๆดพๅฏน! (Girls Band Party) ยท ใ€Š่ฟท้€”ไน‹ๅญ!!!!!ใ€‹ (MyGO!!!!!) ยท ใ€Š้ข‚ไนไบบๅถใ€‹ (Ave Mujica) ยท BanG Dream! ไบค็ป‡็š„ไน็ซ  (Our Notes) ยท ใƒใƒณใƒ‰ใƒช๏ผ ใ‚ฌใƒผใƒซใ‚บใƒใƒณใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃ๏ผ ยท ใ‚ฌใƒซใƒ‘.

ๆ—ฅๆœฌ่ชž๏ผšใ€ŽBanG Dream!ใ€49 ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผใƒœใ‚คใ‚นใฎ้žๅ…ฌๅผใƒ•ใ‚กใƒณใƒกใ‚คใƒ‰ TTS๏ผˆQwen3-TTS ๅพฎ่ชฟๆ•ด๏ผ‰ใ€‚่ฉฑ่€… ID ใงๅ‘ผใณๅ‡บใ—ใ€ๅ‚็…ง้Ÿณๅฃฐใฏไธ่ฆใ€‚ๆ—ฅๆœฌ่ชžใƒปไธญๅ›ฝ่ชžใƒป่‹ฑ่ชžใซๅฏพๅฟœใ€‚ๅ…ฌๅผใƒปใ‚ญใƒฃใ‚นใƒˆใƒป้‹ๅ–ถใจใฏ็„ก้–ขไฟ‚ใงใ™ใ€‚

ไธญๆ–‡๏ผšใ€ŠBanG Dream!ใ€‹49 ไฝ่ง’่‰ฒ็š„้žๅฎ˜ๆ–น็ฒ‰ไธๅ‘่ฏญ้Ÿณๅˆๆˆ๏ผˆTTS๏ผ‰ๆจกๅž‹๏ผŒๅŸบไบŽ Qwen3-TTS ๅพฎ่ฐƒใ€‚ๆŒ‰่ฏด่ฏไบบ ID ็›ดๆŽฅๅˆๆˆ๏ผŒๆ— ้œ€ๅ‚่€ƒ้Ÿณ้ข‘๏ผ›ๆ”ฏๆŒๆ—ฅ่ฏญใ€ๆ™ฎ้€š่ฏๅ’Œ่‹ฑ่ฏญใ€‚ไธŽๅฎ˜ๆ–นใ€่ฟ่ฅๅŠๅฃฐไผ˜ๆ— ๅ…ณใ€‚

Voices 49 speaker rows (45 characters; 4 persona variants), table below
Languages Japanese, Mandarin Chinese, English (language="Japanese" / "Chinese" / "English")
Type Qwen3-TTS custom_voice checkpoint: text in, speech out, no reference audio
Base model Qwen/Qwen3-TTS-12Hz-1.7B-Base, full fine-tune
Training data 9,268 Japanese voice lines of the 49 voices (from 22.1 h kept), plus 1,509 native Mandarin/English replay clips and 564 gated in-voice pseudo-Mandarin rows: 11,341 training rows, 23.4 h
Version E1b epoch 2 (trained 2026-10-30, released 2026-11-06)
License Unofficial fan model, no rights granted (details)
Code starryark/bangdream-tts

Use (Python)

import torch, soundfile as sf
from qwen_tts import Qwen3TTSModel   # pip install qwen-tts

tts = Qwen3TTSModel.from_pretrained("starrydark/BanG_Dream_Qwen3_TTS",
                                    device_map="cuda", dtype=torch.bfloat16)
wavs, sr = tts.generate_custom_voice(
    text="ไปŠๆ—ฅใฎ็ทด็ฟ’ใ€ๆ€ใฃใŸใ‚ˆใ‚Šๆ—ฉใ็ต‚ใ‚ใฃใŸใญใ€‚",
    speaker="ppp_kasumi",            # see the table below
    language="Japanese",             # or "Chinese" / "English"
)
sf.write("kasumi.wav", wavs[0], sr)

Usage notes:

  • Always pass language. Training used a language id on every row; it is what keeps Mandarin and English free of the Japanese accent.
  • Keep the default sampling (temperature 0.9, top-k 50). Greedy decoding makes codec language models loop.
  • Try a few seeds for Mandarin and English on the voices marked "generic" below.
  • Generated audio is synthetic: label it as AI-generated wherever you share it.

ไธญๆ–‡่ฏดๆ˜Ž

้žๅฎ˜ๆ–น BanG Dream!๏ผˆ้‚ฆ้‚ฆ๏ผ‰่ง’่‰ฒ่ฏญ้Ÿณๅˆๆˆๆจกๅž‹๏ผŒๅŸบไบŽ Qwen3-TTS ๅพฎ่ฐƒใ€‚ๆŒ‰่ฏด่ฏไบบ ID ็›ดๆŽฅๅˆๆˆ๏ผŒๆ— ้œ€ๅ‚่€ƒ้Ÿณ้ข‘๏ผ›ไผš่ฏดๆ—ฅ่ฏญใ€ๆ™ฎ้€š่ฏๅ’Œ่‹ฑ่ฏญใ€‚็ฒ‰ไธ่‡ชๅˆถ๏ผŒไธŽ Bushiroadใ€Craft Eggใ€BanG Dream! ๅฎ˜ๆ–นใ€ๅฎ˜ๆ–น AI ๅฃฐๅบ“โ€œๆขฆ็š„็ป“ๅ”ฑโ€ๅŠๅฃฐไผ˜ๅ‡ๆ— ๅ…ณใ€‚

ๆœฌๆจกๅž‹๏ผˆmain๏ผ‰ๅŒ…ๅซๅฐ‘ๅฅณไนๅ›ขๆดพๅฏน 7 ไธชไน้˜Ÿใ€MyGO!!!!!๏ผˆใ€Š่ฟท้€”ไน‹ๅญ!!!!!ใ€‹๏ผ‰ๅ’Œ Ave Mujica๏ผˆใ€Š้ข‚ไนไบบๅถใ€‹๏ผ‰ๅ…ฑ 49 ไธชๅฃฐ็บฟ๏ผ›ใ€ŠBanG Dream! Our Notesใ€‹็š„ 25 ไธชๅฃฐ็บฟๅœจๅฏ้€‰ๅˆ†ๆ”ฏ ournotesใ€‚ๅœจ็บฟไฝ“้ชŒ๏ผšๆผ”็คบ Space๏ผˆ74 ไธชๅฃฐ็บฟ๏ผŒๅฏ็›ดๆŽฅ่พ“ๅ…ฅไธญๆ–‡ๅๆœ็ดข๏ผ‰ใ€‚

import os; os.environ.setdefault("HF_ENDPOINT", "https://hf-mirror.com")   # ไธญๅ›ฝๅคง้™†็ฝ‘็ปœ
import torch, soundfile as sf
from qwen_tts import Qwen3TTSModel   # pip install qwen-tts
tts = Qwen3TTSModel.from_pretrained("starrydark/BanG_Dream_Qwen3_TTS", device_map="cuda", dtype=torch.bfloat16)
wavs, sr = tts.generate_custom_voice(text="ไปŠๅคฉ็š„ๆŽ’็ปƒ็œŸๅผ€ๅฟƒ๏ผŒๆ˜ŽๅคฉไนŸไธ€่ตทๅŠ ๆฒนๅง๏ผ", speaker="mygo_anon", language="Chinese")
sf.write("out.wav", wavs[0], sr)

ๆ™ฎ้€š่ฏ้Ÿณ่‰ฒ๏ผˆ่ฏดไธญๆ–‡ๆ—ถๅƒไธๅƒๆœฌไบบ๏ผ‰๏ผš

็จ‹ๅบฆ ๆ•ฐ้‡ ๅฃฐ็บฟ
ไฟๆŒ่ง’่‰ฒ้Ÿณ่‰ฒ 34 ไธ‹่กจไธญๆ ‡ไธบ own voice ็š„ๅฃฐ็บฟ
้ƒจๅˆ†ๅ้€š็”จ 8 ไธธๅฑฑๅฝฉ๏ผˆpp_aya๏ผ‰ใ€่‹ฅๅฎซไผŠ่Š™๏ผˆpp_eve๏ผ‰ใ€ๆฟ‘็”ฐ่–ฐ๏ผˆhhw_kaoru๏ผ‰ใ€ๅŒ—ๆณฝ่‚ฒ็พŽ๏ผˆhhw_hagumi๏ผ‰ใ€ๆพๅŽŸ่Šฑ้Ÿณ๏ผˆhhw_kanon๏ผ‰ใ€ไฝ่—ค็›Šๆœจ๏ผˆras_masking๏ผ‰ใ€็ ๆ‰‹็Ÿฅ็”ฑ๏ผˆras_chuchu๏ผ‰ใ€ไธฐๅท็ฅฅๅญ๏ผˆๆœˆไน‹ๆฃฎ๏ผ‰๏ผˆmujica_sakiko_tsuki๏ผ‰
ๅ้€š็”จ้Ÿณ่‰ฒ 7 ๆˆทๅฑฑ้ฆ™ๆพ„๏ผˆppp_kasumi๏ผ‰ใ€็‰›่พผ้‡Œ็พŽ๏ผˆppp_rimi๏ผ‰ใ€ๅฎ‡็”ฐๅทไบšๅญ๏ผˆๅคง้ญ”ๅงฌ๏ผ‰๏ผˆro_ako_maou๏ผ‰ใ€็™ฝ้‡‘็‡ๅญ๏ผˆro_rinko๏ผ‰ใ€ๆœๆ—ฅๅ…ญ่Šฑ๏ผˆras_lock๏ผ‰ใ€้ซ˜ๆพ็ฏ๏ผˆmygo_tomori๏ผ‰ใ€้•ฟๅดŽ็ˆฝไธ–๏ผˆๆœˆไน‹ๆฃฎ๏ผ‰๏ผˆmygo_soyo_tsuki๏ผ‰

โ€œๅ้€š็”จโ€็š„ๆ„ๆ€ๆ˜ฏ๏ผšๅฃ้Ÿณไปๆ˜ฏๆ ‡ๅ‡†ๆ™ฎ้€š่ฏ๏ผŒไฝ†้Ÿณ่‰ฒๆ›ดๆŽฅ่ฟ‘ๅŸบ็ก€ๆจกๅž‹็š„้ป˜่ฎคๅฃฐ้Ÿณ๏ผŒ่€Œไธๆ˜ฏ่ง’่‰ฒๆœฌไบบใ€‚

ไฝฟ็”จ่ง„ๅˆ™๏ผš

  • ็”Ÿๆˆ็š„้Ÿณ้ข‘ๅ‡ไธบ AI ๅˆๆˆ๏ผŒๅ‘ๅธƒๆ—ถ้กปๆ˜Ž็กฎๆ ‡ๆณจโ€œAI็”Ÿๆˆโ€๏ผˆใ€Šไบบๅทฅๆ™บ่ƒฝ็”Ÿๆˆๅˆๆˆๅ†…ๅฎนๆ ‡่ฏ†ๅŠžๆณ•ใ€‹๏ผŒ2025-09-01 ่ตทๆ–ฝ่กŒ๏ผ‰ใ€‚ๅœจ bilibili ๆŠ•็จฟๆ—ถ๏ผŒ่ฏทๅœจไธŠไผ ้กตๅ‹พ้€‰ AI ๆ ‡่ฏ†ใ€‚
  • ็ฆๆญขๅ•†็”จใ€‚็ฆๆญขๅ†’ๅ……ๅฃฐไผ˜ๆˆ–ๅฎ˜ๆ–น๏ผŒ็ฆๆญข็”จไบŽๆŸๅฎณ่ง’่‰ฒๅŠๅฃฐไผ˜ๅฝข่ฑก็š„ๅ†…ๅฎนใ€‚
  • BanG Dream! ๅฎ˜ๆ–นไบŒๅˆ›ๆŒ‡ๅ—๏ผˆhttps://bang-dream.com/bdp-guideline/๏ผ‰็ฌฌ 10 ๆก็ฆๆญขไฝฟ็”จไฝœๅ“้Ÿณๅฃฐๅˆถไฝœใ€ๅ…ฌๅผ€ไบŒๆฌกๅˆ›ไฝœใ€‚ๆœฌๆจกๅž‹ๆ˜ฏๅœจๆญคๅ‰ๆไธ‹็š„้žๅฎ˜ๆ–น็ฒ‰ไธไฝœๅ“ใ€‚ๆƒๅˆฉๆ–นๆˆ–ๅฃฐไผ˜ๆๅ‡บ่ฆๆฑ‚ๆ—ถ๏ผŒๆจกๅž‹ไธŽๆผ”็คบๅฐ†็ซ‹ๅณไธ‹ๆžถใ€‚

Voices

speaker ids are <band>_<name>. "Mandarin identity" is the share of 32 Mandarin test renders that an independent speaker probe attributes to the right voice among all 49 ("Japanese identity" is the same over the Japanese test renders. generic means the voice speaks Mandarin with a native accent but in a timbre closer to the base model's default voice than to the character; partly generic means that happens on some seeds).

speaker Character ไธญๆ–‡ๅ Band Japanese data Japanese identity Mandarin identity Mandarin voice
ppp_kasumi ๆˆธๅฑฑ้ฆ™ๆพ„ ๆˆทๅฑฑ้ฆ™ๆพ„ Poppin'Party 35 min 0.84 0.25 generic
ppp_tae ่Šฑๅœ’ใŸใˆ ่Šฑๅ›ญๅคšๆƒ  Poppin'Party 31 min 1.00 0.94 own voice
ppp_rimi ็‰›่พผใ‚Šใฟ ็‰›่พผ้‡Œ็พŽ Poppin'Party 24 min 1.00 0.25 generic
ppp_saaya ๅฑฑๅนๆฒ™็ถพ ๅฑฑๅนๆฒ™็ปซ Poppin'Party 47 min 1.00 1.00 own voice
ppp_arisa ๅธ‚ใƒถ่ฐทๆœ‰ๅ’ฒ ๅธ‚่ฐทๆœ‰ๅ’ฒ Poppin'Party 61 min 0.98 0.94 own voice
ag_ran ็พŽ็ซน่˜ญ ็พŽ็ซนๅ…ฐ Afterglow 26 min 1.00 0.91 own voice
ag_moca ้’่‘‰ใƒขใ‚ซ ้’ๅถๆ‘ฉๅก Afterglow 59 min 0.98 1.00 own voice
ag_himari ไธŠๅŽŸใฒใพใ‚Š ไธŠๅŽŸ็ปฏ็Ž›ไธฝ Afterglow 45 min 1.00 0.88 own voice
ag_tomoe ๅฎ‡็”ฐๅทๅทด ๅฎ‡็”ฐๅทๅทด Afterglow 31 min 1.00 0.97 own voice
ag_tsugumi ็พฝๆฒขใคใใฟ ็พฝๆณฝ้ธซ Afterglow 30 min 1.00 0.88 own voice
pp_aya ไธธๅฑฑๅฝฉ ไธธๅฑฑๅฝฉ Pastel*Palettes 52 min 0.98 0.84 partly generic
pp_hina ๆฐทๅทๆ—ฅ่œ ๅ†ฐๅทๆ—ฅ่œ Pastel*Palettes 34 min 1.00 0.97 own voice
pp_chisato ็™ฝ้ทบๅƒ่– ็™ฝ้นญๅƒๅœฃ Pastel*Palettes 26 min 1.00 1.00 own voice
pp_maya ๅคงๅ’Œ้บปๅผฅ ๅคงๅ’Œ้บปๅผฅ Pastel*Palettes 45 min 1.00 0.94 own voice
pp_eve ่‹ฅๅฎฎใ‚คใƒด ่‹ฅๅฎซไผŠ่Š™ Pastel*Palettes 46 min 1.00 0.62 partly generic
ro_yukina ๆนŠๅ‹ๅธŒ้‚ฃ ๅ‡‘ๅ‹ๅธŒ้‚ฃ Roselia 19 min 1.00 1.00 own voice
ro_sayo ๆฐทๅท็ด—ๅคœ ๅ†ฐๅท็บฑๅคœ Roselia 31 min 1.00 1.00 own voice
ro_lisa ไปŠไบ•ใƒชใ‚ต ไปŠไบ•่މ่ŽŽ Roselia 39 min 1.00 1.00 own voice
ro_ako ๅฎ‡็”ฐๅทใ‚ใ“ ๅฎ‡็”ฐๅทไบšๅญ Roselia 8 min 1.00 0.88 own voice
ro_ako_maou ๅฎ‡็”ฐๅทใ‚ใ“ ๅฎ‡็”ฐๅทไบšๅญ๏ผˆๅคง้ญ”ๅงฌ๏ผ‰ Roselia 5 min 0.88 0.31 generic
ro_rinko ็™ฝ้‡‘็‡ๅญ ็™ฝ้‡‘็‡ๅญ Roselia 42 min 1.00 0.53 generic
hhw_kokoro ๅผฆๅทปใ“ใ“ใ‚ ๅผฆๅทๅฟƒ Hello, Happy World! 29 min 1.00 0.94 own voice
hhw_kaoru ็€ฌ็”ฐ่–ซ ๆฟ‘็”ฐ่–ฐ Hello, Happy World! 30 min 1.00 0.84 partly generic
hhw_hagumi ๅŒ—ๆฒขใฏใใฟ ๅŒ—ๆณฝ่‚ฒ็พŽ Hello, Happy World! 23 min 1.00 0.81 partly generic
hhw_kanon ๆพๅŽŸ่Šฑ้Ÿณ ๆพๅŽŸ่Šฑ้Ÿณ Hello, Happy World! 36 min 1.00 0.66 partly generic
hhw_misaki ๅฅฅๆฒข็พŽๅ’ฒ ๅฅฅๆณฝ็พŽๅ’ฒ Hello, Happy World! 37 min 1.00 0.97 own voice
mo_mashiro ๅ€‰็”ฐใพใ—ใ‚ ไป“็”ฐ็œŸ็™ฝ Morfonica 23 min 1.00 0.97 own voice
mo_touko ๆกใƒถ่ฐท้€ๅญ ๆก่ฐท้€ๅญ Morfonica 22 min 1.00 0.91 own voice
mo_nanami ๅบƒ็”บไธƒๆทฑ ๅนฟ็”บไธƒๆทฑ Morfonica 34 min 1.00 0.94 own voice
mo_tsukushi ไบŒ่‘‰ใคใใ— ไบŒๅถ็ญ‘็ดซ Morfonica 25 min 1.00 1.00 own voice
mo_rui ๅ…ซๆฝฎ็‘ ๅ”ฏ ๅ…ซๆฝฎ็‘ ๅ”ฏ Morfonica 26 min 1.00 1.00 own voice
ras_layer ๅ’Œๅฅใƒฌใ‚ค ๅ’Œๅฅ็‘žไพ RAISE A SUILEN 33 min 1.00 1.00 own voice
ras_lock ๆœๆ—ฅๅ…ญ่Šฑ ๆœๆ—ฅๅ…ญ่Šฑ RAISE A SUILEN 34 min 1.00 0.50 generic
ras_masking ไฝ่—คใพใ™ใ ไฝ่—ค็›Šๆœจ RAISE A SUILEN 23 min 1.00 0.81 partly generic
ras_pareo ้ณฐๅŽŸไปค็Ž‹้‚ฃ ้ณฐๅŽŸไปค็Ž‹้‚ฃ RAISE A SUILEN 22 min 1.00 0.97 own voice
ras_chuchu ็ ๆ‰‹ใกใ‚† ็ ๆ‰‹็Ÿฅ็”ฑ RAISE A SUILEN 42 min 0.93 0.75 partly generic
mygo_tomori ้ซ˜ๆพ็‡ˆ ้ซ˜ๆพ็ฏ MyGO!!!!! 30 min 1.00 0.44 generic
mygo_anon ๅƒๆ—ฉๆ„›้Ÿณ ๅƒๆ—ฉ็ˆฑ้Ÿณ MyGO!!!!! 11 min 1.00 0.94 own voice
mygo_raana ่ฆๆฅฝๅฅˆ ่ฆไนๅฅˆ MyGO!!!!! 13 min 1.00 0.91 own voice
mygo_soyo ้•ทๅดŽใใ‚ˆ ้•ฟๅดŽ็ˆฝไธ–ใ€”็ด ไธ–ใ€• MyGO!!!!! 10 min 0.88 1.00 own voice
mygo_soyo_tsuki ้•ทๅดŽใใ‚ˆ ้•ฟๅดŽ็ˆฝไธ–ใ€”็ด ไธ–ใ€•๏ผˆๆœˆไน‹ๆฃฎ๏ผ‰ MyGO!!!!! 16 min 1.00 0.44 generic
mygo_taki ๆคŽๅ็ซ‹ๅธŒ ๆคŽๅ็ซ‹ๅธŒ MyGO!!!!! 27 min 1.00 0.97 own voice
mujica_uika ไธ‰่ง’ๅˆ่ฏ ไธ‰่ง’ๅˆๅŽ Ave Mujica 6 min 1.00 1.00 own voice
mujica_mutsumi ่‹ฅ่‘‰็ฆ ่‹ฅๅถ็ฆ Ave Mujica 3 min 1.00 0.91 own voice
mujica_mortis ่‹ฅ่‘‰็ฆ Mortisใ€”ๅขจ็ผ‡ไธใ€• Ave Mujica 5 min 1.00 0.94 own voice
mujica_umiri ๅ…ซๅนกๆตท้ˆด ๅ…ซๅนกๆตท้“ƒ Ave Mujica 3 min 0.97 1.00 own voice
mujica_nyamu ็ฅๅคฉๅฏบใซใ‚ƒใ‚€ ็ฅๅคฉๅฏบ่‹ฅ้บฆใ€”ๅ–ตๆขฆใ€• Ave Mujica 6 min 1.00 1.00 own voice
mujica_sakiko ่ฑŠๅท็ฅฅๅญ ไธฐๅท็ฅฅๅญใ€”ๅฐ็ฅฅใ€• Ave Mujica 6 min 0.83 0.94 own voice
mujica_sakiko_tsuki ่ฑŠๅท็ฅฅๅญ ไธฐๅท็ฅฅๅญใ€”ๅฐ็ฅฅใ€•๏ผˆๆœˆไน‹ๆฃฎ๏ผ‰ Ave Mujica 13 min 1.00 0.78 partly generic

Summary: Japanese is in-voice for all 49 (pooled identity 0.986, real recordings 0.988). Mandarin is in-voice for 34 voices; the 15 marked generic or partly generic fall back toward a generic timbre in Mandarin and English.

Persona rows. ro_ako_maou (Ako's ๅคง้ญ”ๅงซ persona), mygo_soyo_tsuki and mujica_sakiko_tsuki (the ๆœˆใƒŽๆฃฎ versions) and mujica_mortis (Mortis) are separate rows. Their real recordings are confused with the base character 89โ€“97% of the time by the same probe, so expect them to be close to their base row.

FAQ

Does it need reference audio? No. Every voice is a built-in speaker row, called by its id (speaker="mygo_anon").

Can the characters speak Chinese? Yes. Pass language="Chinese". Every voice speaks Mandarin with a native accent. Most voices also keep their own timbre in Mandarin; those that drift toward a generic timbre are marked in the table and listed in the Chinese section.

Which revision should I load?

  • main for the 49 Girls Band Party / MyGO!!!!! / Ave Mujica voices.
  • revision="ournotes" for the 16 Our Notes characters and the *_ournotes voices.
  • The demo picks the right one automatically.

How is it different from GPT-SoVITS, RVC or Bert-VITS2 character models?

  • It is one checkpoint with every voice built in, so it needs no reference clip (GPT-SoVITS) and no source recording (RVC).
  • Bert-VITS2 character models also call built-in speakers; against those, the difference is Mandarin and evaluation.
  • It was trained so that its Mandarin is not Japanese-accented.
  • Its checkpoints were chosen by rules fixed before training, and the later ones by blind listening.

What hardware does it need? It is a fine-tune of Qwen3-TTS-12Hz-1.7B-Base; the bf16 weights are 3.8 GB, and inference runs on a CUDA GPU (pip install qwen-tts). Without a GPU, use the demo.

Can I download it from mainland China? Set HF_ENDPOINT=https://hf-mirror.com before from_pretrained("starrydark/BanG_Dream_Qwen3_TTS", ...).

Can I post what I make? Only as a labelled, non-commercial fan work. The BanG Dream! fan-work guideline prohibits derivative works that use the franchise's audio (item 10), and China requires an explicit AI label on generated audio. Never impersonate the cast or present output as official. See Rights and responsible use.

Is this official, or related to ๅคขใƒŽ็ตๅ”ฑ (ๆขฆ็š„็ป“ๅ”ฑ)? No. This is an unofficial fan project. ๅคขใƒŽ็ตๅ”ฑ is Bushiroad Music's official AI singing product and is unrelated.

Evaluation

Checkpoints were chosen by selection rules written down before each training run (eval/E1_PLAN.md, eval/E5_PLAN.md). Per checkpoint: 4,356 renders, i.e. 49 voices ร— (held-out game lines + 12 new Japanese sentences, 16 Mandarin, 8 English) ร— 2 seeds.

Measures:

  • Identity (leak): the share of renders a codec-calibrated speaker probe (logistic regression on Qwen3-TTS speaker-encoder vectors, fitted on resynthesised real clips) assigns to a different voice. Lower is better.
  • ja CER: Qwen3-ASR character error rate on held-out Japanese lines.
  • Mandarin accent: SER (shared-character syllable error rate, human-validated on the sibling Kurisu project) and lid (a language-id log-ratio; more negative = more native).
  • en WER / lid: the same for English.
Model ja leak โ†“ ja p_true โ†‘ ja CER โ†“ zh SER โ†“ zh lid โ†“ zh leak โ†“ Own-voice Mandarin (zh leak โ‰ค 0.15) en lid โ†“ en WER โ†“
Real recordings, through the codec 0.012 0.777 0.023 โ€” โ€” โ€” โ€” โ€” โ€”
Floor: untrained Base, same speaker vectors 0.100 0.567 0.032 0.077 โˆ’19.5 0.157 36/49 โˆ’12.2 0.001
E1a epoch 1: Japanese + language ids + replay, no pseudo-Mandarin (rejected: accented Mandarin) 0.009 0.810 0.027 0.177 โˆ’12.6 0.008 โ€” โ€” 0.006
This model: E1b epoch 2 0.014 0.802 0.028 0.069 โˆ’18.6 0.155 34/49 โˆ’9.3 0.003
E2 epoch 2: + more self-generated rows (not adopted) 0.021 0.786 โ€” 0.063 โˆ’19.7 0.186 34/49 โˆ’10.1 โ€”
E5 epoch 2: + 218 RVC-converted Mandarin rows (not adopted) 0.014 0.815 0.025 0.078 โˆ’18.1 0.088 40/49 โˆ’9.5 0.003

How to read the table:

  • Japanese identity is at the real-recording level (leak 0.014 against 0.012 for real clips through the same codec; the untrained floor is 0.100). The remaining errors are mostly inside persona pairs, plus ppp_kasumi (0.84).
  • Mandarin accent stays at the floor (SER 0.069 vs 0.077). With language ids and 13% native replay but only Japanese in the characters' voices (E1a), Mandarin comes out Japanese-accented (SER 0.177); adding 5% gated in-voice pseudo-Mandarin (this model) removes it.
  • Mandarin identity is the open problem. Voices that had no usable in-voice Mandarin rows fall back to the base model's timbre.
  • Six follow-ups did not replace this model.
    • E2 (doubling the self-generated rows) diluted identity.
    • E5 trained per-voice RVC converters on each voice's Japanese clips, converted native Mandarin into 15 voices, and retrained. Mandarin identity improved (0.155 โ†’ 0.088, 34 โ†’ 40 voices; Eve, Kanon, Hagumi, Aya, Kaoru fixed), but it missed the adoption bar fixed before training (โ‰ค 0.08, โ‰ฅ 43/49, targets โ‰ค 0.15). Following that rule, E5 is not released.
    • Details: eval/E5_RESULTS.md.
    • E6 and E7 (2026-11-08) retrained on BanG Dream! Our Notes story audio: the MyGO!!!!! / Ave Mujica voices were replaced, and 16 new characters were added (E7 with own-voice Mandarin rows from the start). Neither passed its pre-registered guards. The main blockers were one new voice's Japanese identity (yomogi), Japanese CER on the new text (which real recordings themselves only just clear) and Mandarin accent on three voices. So v2 was not released. Details: e6/E6_RESULTS.md and e7/E7_RESULTS.md in the code repository.
    • E8 and E9 (2026-11-09) were judged by blind listening against this model.
      • E9 trained both eras of the MyGO!!!!! / Ave Mujica characters, with one id per era.
      • Its 25 Our Notes voices were all judged in character, but its versions of this model's MyGO!!!!! / Ave Mujica voices were judged worse than these (mean โˆ’0.58 on โˆ’3โ€ฆ+3, p = 0.046).
      • So this model stays the default, and E9 is published only as the opt-in ournotes branch for its 25 Our Notes voices.
      • Details: e9/E9_RESULTS.md in the code repository and eval/ on that branch.

Training details

The code is in the GitHub repository. Training records (data counts, mix, reports) are in training_data/; per-clip transcripts are deliberately not published.

Data

  • Japanese: 9,804 voice lines (22.1 h) of the 49 voices, re-cut and levelled per voice; transcripts checked with Qwen3-ASR; held-out test lines and validation are split off; 9,268 lines are in training. Poppin'Party to MyGO!!!!! come from the game Girls Band Party; Ave Mujica's (3โ€“13 min per voice) mostly from the anime.
  • Native replay: about 13% of training rows are native Mandarin (AISHELL-3) and English (LibriTTS-R) clips from 55 auxiliary speakers, so the model keeps native articulation in those languages.
  • Pseudo-Mandarin (in-voice): gated Base-model renders in each voice's locked speaker vector (accent, text and identity gates), capped per voice.

Speaker vectors

  • Each voice has a fixed vector: the mean Qwen3-TTS speaker-encoder embedding of up to 64 screened reference clips.
  • It is written into codec-embedding rows 3000โ€“3048 and never trained.

Optimisation

  • Full fine-tune, fp32 master weights, bf16 autocast; AdamW, lr 5e-6, weight decay 0.01, cosine over a 3-epoch schedule with checkpoints at epochs 1, 2 and 3; this is the epoch-2 checkpoint (picked by the pre-registered rule); effective batch 32.
  • Language id on every row, 25% of rows on the Auto prefix.
  • Trainer: the fixed multi-speaker trainer from the Kurisu project (corrects the official sft_12hz.py's label shift, sub-talker frame and text_projection bugs).

Compute: one H100 80GB. The whole E1 study (smoke test, two arms ร— three epochs, floor and real-clip references, evaluation) took about 5 h, about $20; this model's own training took about 10 minutes. The follow-ups (E2, E5โ€“E9) are documented in the code repository.

Limitations

  • Mandarin in a generic timbre for 15 voices: ppp_kasumi, ppp_rimi, ro_ako_maou, ro_rinko, ras_lock, mygo_tomori, mygo_soyo_tsuki (generic), and pp_eve, hhw_kanon, ras_chuchu, mujica_sakiko_tsuki, hhw_hagumi, ras_masking, pp_aya, hhw_kaoru (partly). Their Mandarin is native-accented but may not sound like the character.
  • English is intelligible but mildly Japanese-accented for most voices (en lid โˆ’9.3; the untrained floor is โˆ’12.2), and clearly accented for the generic group. There were no English in-voice rows.
  • Persona pairs are close. mujica_sakiko / mujica_sakiko_tsuki, mygo_soyo / mygo_soyo_tsuki and ro_ako / ro_ako_maou sometimes swap (Japanese identity 0.83โ€“0.88 for the weaker side). ppp_kasumi has the lowest Japanese identity among the game voices (0.84).
  • Ave Mujica voices have little data (3โ€“13 min, mostly anime audio), so they are less stable than the game voices.
  • Evaluation is automatic (speaker probe, ASR, accent metrics). Listening checks were used for intermediate data, not for a full blind test of this checkpoint.

Rights and responsible use

This is an unofficial fan project, with no affiliation to Bushiroad, Craft Egg, the BanG Dream! project, or the voice cast.

  • The characters, the source audio and all related marks belong to their respective owners.
  • No copyright, performer, publicity or voice rights are granted by this repository.
  • No game audio, dataset, transcripts or audio samples are distributed here; only model weights and evaluation numbers.
  • The official BanG Dream! fan-work guideline (https://bang-dream.com/bdp-guideline/) prohibits derivative works that use the franchise's audio. Item 10 reads ใ€Œๆœฌใ‚ณใƒณใƒ†ใƒณใƒ„ใฎใ†ใกใ€้Ÿณๅฃฐใ‚’ๅˆฉ็”จใ—ใŸไบŒๆฌก็š„่‘—ไฝœ็‰ฉใฎๅˆถไฝœใ€ๅฑ•็คบใ€้ ’ๅธƒใ€ๅ…ฌ้–‹ใ€‚ใ€. This model is an unofficial fan work made despite that. Read the guideline before using outputs anywhere public.
  • AI labels: in mainland China, AI-generated audio must carry an explicit AI label (ใ€Šไบบๅทฅๆ™บ่ƒฝ็”Ÿๆˆๅˆๆˆๅ†…ๅฎนๆ ‡่ฏ†ๅŠžๆณ•ใ€‹, in force since 2025-09-01), and bilibili asks uploaders to set its AIๆ ‡่ฏ† when uploading.

Do not use it to:

  • impersonate the voice actors or anyone else;
  • mislead people about authentic or official speech, or make anything that could be mistaken for official material;
  • harm the image of the characters or the cast;
  • suggest endorsement, harass, or make commercial use.

Disclose synthetic audio as synthetic. Users are responsible for lawful use in their jurisdiction. Rights holders and cast members may contact the repository owner (Hugging Face: starrydark; GitHub: starryark, issues) for removal, and the repository will be taken down on request.

Model weights derive from Qwen3-TTS (Apache-2.0).

Citation

@misc{bangdream_qwen3_tts_2026,
  title  = {BanG Dream! character voices: a cross-lingual Qwen3-TTS fine-tune},
  author = {starrydark},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/starrydark/BanG_Dream_Qwen3_TTS}},
  note   = {Code: \url{https://github.com/starryark/bangdream-tts}}
}
@article{qwen3tts2026,
  title   = {Qwen3-TTS Technical Report},
  journal = {arXiv preprint arXiv:2601.15621},
  year    = {2026}
}
Downloads last month
132
Safetensors
Model size
2B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for starrydark/BanG_Dream_Qwen3_TTS

Finetuned
(60)
this model
Quantizations
1 model

Space using starrydark/BanG_Dream_Qwen3_TTS 1

Paper for starrydark/BanG_Dream_Qwen3_TTS