Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自力でTTSモデルを作った話
Search
Tatsuya Ando
February 22, 2025
Programming
0
240
自力でTTSモデルを作った話
オープンソースカンファレンス2025 Tokyo Springの東海道らぐLT大会で発表したスライドです
Tatsuya Ando
February 22, 2025
Tweet
Share
More Decks by Tatsuya Ando
See All by Tatsuya Ando
GitHub Copilotと和解せよ
zgock999
0
130
我ギガスクール構想ニ勝テリ
zgock999
0
120
GPUパススルーでVMからVRしてみよう
zgock999
0
2.6k
Other Decks in Programming
See All in Programming
AWS Summit Japan 2024と2025の比較/はじめてのKiro、今あなたは岐路に立つ
satoshi256kbyte
1
260
Amazon Q CLI開発で学んだAIコーディングツールの使い方
licux
3
130
[Codecon - 2025] Como não odiar seus testes
camilacampos
0
100
コーディングエージェント概観(2025/07)
itsuki_t88
0
460
Flutterと Vibe Coding で個人開発!
hyshu
0
120
リッチエディターを安全に開発・運用するために
unachang113
1
310
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
4
530
リバースエンジニアリング新時代へ! GhidraとClaude DesktopをMCPで繋ぐ/findy202507
tkmru
4
1.6k
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
280
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
2
1.4k
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
230
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
680
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Building Adaptive Systems
keathley
43
2.7k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Site-Speed That Sticks
csswizardry
10
730
KATA
mclloyd
31
14k
How to Ace a Technical Interview
jacobian
278
23k
Transcript
自力で TTS(用モデル)を 作った話 東海道らぐ2025 Tokyo Spring
お前誰よ ▪ ・安藤と申します ▪ ・openSUSEユーザー会名古屋ドメイン ▪ ・体調の都合でしばらくお休みしてました
最近はAI関係でよく遊んでます ▪ ・画像生成AIで遊んだりとか ▪ ・ローカルでLLM建てたりとか ▪ ・ついに音声合成にも手を出して(今回はここの話)
Zonosという音声生成システム ▪ ・2月頭に登場したバリバリの新星 ▪ ・いわゆるワンショットTTS/ボイスクローナー ▪ ・同種のいろいろよりもかなり高いクローン性能
いいことばかりでもない ▪ ・出力がかなりガチャで良い時は良いが、ひどい時もある ▪ ・そもそも一部日本語を読ませると出力が破綻する ▪ ・ただ、それで見切ってしまうにはあまりにも惜しいクローン性能
よろしい、ならば ▪ ・まっとうに日本語が読める学習系TTSの素材吐かせればよくね?
Style-Bert-VITS2 ▪ ・最近人気の日本語TTS ▪ ・中国生まれのTTS、Bert-VITSの日本語特化fork ▪ ・元テキストの文脈から、ある程度感情分析しながら発音 ▪ ・読みのbackendにpyopenjtalkを使っており、読めない日本語があった
りとかはさすがにない ▪ ・学習させるには延べ10~30分ぐらいの音声素材が必要 ▪ ・↑この素材をZonosに作らせたらええやん!
ITAコーパス ▪ https://github.com/mmorise/ita-corpus ▪ ・日本語に登場する音素を網羅した読み上げ用テキスト ▪ ・100個の短い文章で構成されている ▪ ・テキストそのものはCC0
▪ ・Style-Bert-VITS2の学習元作成ではスタンダード ▪ ・Zonosにこれを読ませよう
ダメでした ▪ ・Zonosの日本語の音素化が不完全なため、半分ぐらいの文章で出力が 破綻する ▪ ・そもそもITAコーパスがTTS苛めといっても良いぐらい意地悪な内容 ▪ 「どーすんの、このお店。完ッ全に閑古鳥が鳴いちゃってるじゃない。」 ▪
「ひぇーん。びぇーん。ぴぇーん。」 ▪ 「ラーテャン。」 ▪ ↑↑テスト用データとしては極めて正しい
なんで破綻するのか ▪ ・Zonosの音素化バックエンドはespeak-ng ▪ ・かなーり昔からある多言語対応TTS ▪ ・日本語サポートを一応しているがめっちゃ不完全 ▪ ・不完全なサポートのまま日本語辞書は3年前から未更新
▪ ・「とても恐ろしい集団真理である...そう、誰もメンテをしていないのである」 ▪ ・対策...するか
いろいろ考えた、いろいろ試した ▪ ・backendをpyopenjtalkにする? →そもそもZonosがespeak-ngの不完全な音素で学習してるので pyopenjtalkが吐いた音素からうまく推論できない ▪ ・espeak-ngをメンテする? →そもそもZonosがespeak-ngの不完全な音素で学習(略) ▪
・espeak-ngが破綻した音素を吐いたら後処理で補正する? →そもそもZonosがespeak-ngの不(略)
超絶雑ハック注意 ▪ ・espeak-ngはカタカナしか読めないのでZonosではSudachiを使ってカ タカナ化して渡している ▪ ・この時点でespeak-ngが破綻するカタカナパターンをフィルタする (「ティ」を「チ」に、「ヴィ」を「ビ」にetc..) ▪ ・多少滑舌が怪しくなるけどエラーで破綻するよりはましやろがい!
というわけでパッチ当てた ▪ https://github.com/zgock999/Zonos-Ja ▪ ・日本語対策雑パッチ適用 ▪ ・ついでにうちのQuadro RTX5000で動くようにfp16で動くモードを追加。 (デフォルトはbfloat16なのでRTX30xx以降専用)
さあ、データ作るべ ▪ ・openGameArtからCC0の英語ボイスを調達 ▪ ・バッチ処理でITAコーパスを一括で出すpythonコードを記述 ▪ ・数回の生成ガチャで出来の良い音声を抽出 ▪ ・Style-Bert-VITS2で学習(RTX3060で3時間程度)
できますた ▪ Zonoko Japansese Voice for Style-Bert-VITS2 ▪ https://huggingface.co/zgock/style-bert-vits2-zonoko-cc0
▪ https://hub.aivis-project.com/aivm-models/7fc08a41-b64d-456d- 8b22-8e1284674775