Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自力でTTSモデルを作った話
Search
Tatsuya Ando
February 22, 2025
Programming
680
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自力でTTSモデルを作った話
オープンソースカンファレンス2025 Tokyo Springの東海道らぐLT大会で発表したスライドです
Tatsuya Ando
February 22, 2025
More Decks by Tatsuya Ando
See All by Tatsuya Ando
Claudeに吐かせた原始スライド(参考用)
zgock999
0
12
Waterman Cometh - ウォーターフォールの復権 - LLMとウォーターフォール設計が妙に相性が良い話
zgock999
0
13
GitHub Copilotと和解せよ
zgock999
0
290
我ギガスクール構想ニ勝テリ
zgock999
0
270
GPUパススルーでVMからVRしてみよう
zgock999
0
2.9k
Other Decks in Programming
See All in Programming
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
2
500
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
120
Agents on Rails - Rails at Scale 2026
irinanazarova
0
320
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
120
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
Intent as Code
shoppingjaws
6
1.1k
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
170
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
840
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
220
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
430
mrbgem 三角測量 開発
ogom
0
180
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
210
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
470
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Test your architecture with Archunit
thirion
2
2.4k
It's Worth the Effort
3n
188
29k
Leo the Paperboy
mayatellez
10
2.3k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
340
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Are puppies a ranking factor?
jonoalderson
2
4k
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