|
3 | 3 | ## 概要 |
4 | 4 | このドキュメントは、[rhasspy/piper](https://github.com/rhasspy/piper)のオリジナルリポジトリのIssueとPull Requestを調査し、piper-plus(日本語対応フォーク)で取り組むべき内容をまとめたものです。 |
5 | 5 |
|
| 6 | +## piper-plusの現在の実装状況 |
| 7 | + |
| 8 | +### 既に実装済みの機能 |
| 9 | +1. **日本語音声合成の完全対応** |
| 10 | + - OpenJTalk統合による日本語前処理 |
| 11 | + - 58音素体系(無声化母音を含む)の実装 |
| 12 | + - PUA(Private Use Area)マッピングによる複数文字音素の処理 |
| 13 | + - 自動辞書ダウンロード機能 |
| 14 | + |
| 15 | +2. **プラットフォーム対応** |
| 16 | + - Windows、macOS(Apple Silicon)、Linux(x86_64, ARM64)対応 |
| 17 | + - GitHub Actionsによる自動ビルド |
| 18 | + |
| 19 | +3. **改善済みの機能** |
| 20 | + - 前処理済み.ptファイルの破損時の自動スキップ |
| 21 | + - DataLoaderのGPU転送最適化(pin_memory=True) |
| 22 | + - タイムアウト機能の追加 |
| 23 | + - PyPIパッケージ公開(piper-tts-plus) |
| 24 | + |
| 25 | +4. **現在進行中のPR** |
| 26 | + - PR #100: v3実装 - 最先端TTS機能の統合 |
| 27 | + - PR #99: v2精度向上機能(MOS +0.15-0.29) |
| 28 | + - PR #98: v1精度向上のための実装済みコンポーネント |
| 29 | + - PR #96: マルチ言語モデルの実装 |
| 30 | + |
6 | 31 | ## 重要なIssue |
7 | 32 |
|
8 | | -### 日本語関連の直接的な課題 |
| 33 | +### 日本語関連の課題(piper-plusでは解決済み) |
9 | 34 |
|
10 | 35 | #### 1. Issue #787: Missing phonemes in Japanese |
11 | 36 | - **問題内容**: 日本語の音素が不足している |
12 | | -- **影響**: 日本語TTS品質に直接影響 |
13 | | -- **提案された解決策**: |
14 | | - - espeak-ngコマンドラインを使用したテキスト変換 |
15 | | - - piper_phonemize用の日本語辞書の再コンパイル |
16 | | -- **優先度**: **高** - piper-plusの主要目的に直結 |
| 37 | +- **piper-plusでの対応状況**: ✅ **解決済み** |
| 38 | + - OpenJTalk統合により完全な日本語音素対応を実現 |
| 39 | + - 58音素体系(無声化母音含む)を実装 |
| 40 | + - PUAマッピングで複数文字音素も適切に処理 |
17 | 41 |
|
18 | 42 | ### その他の言語サポート関連 |
19 | 43 |
|
|
86 | 110 | - **内容**: WindowsでのOpenJTalk互換性改善 |
87 | 111 | - **利点**: 日本語TTS実装に直接関連 |
88 | 112 |
|
89 | | -## 推奨実装優先順位 |
| 113 | +## piper-plusで取り込むべき機能の優先順位 |
| 114 | + |
| 115 | +### 優先度:高(オリジナルから取り込むべき機能) |
| 116 | +1. **PR #742: Raw Phoneme Input** |
| 117 | + - 理由: 日本語の精密な音素制御に有用 |
| 118 | + - 既存の58音素体系と組み合わせることで更なる柔軟性を提供 |
90 | 119 |
|
91 | | -### 優先度:高 |
92 | | -1. **Issue #787の解決**: 日本語音素の完全実装 |
93 | | -2. **PR #742の実装**: 生の音素入力サポート |
94 | | -3. **PR #401の実装**: IPA音素記法サポート |
| 120 | +2. **PR #401: IPA phonemes in text** |
| 121 | + - 理由: 国際音声記号のサポートで多言語対応を強化 |
| 122 | + - PR #96のマルチ言語モデル実装と相乗効果 |
| 123 | + |
| 124 | +3. **PR #728: Speaker_id and synthesis parameters in HTTP** (マージ済み) |
| 125 | + - 理由: 音声カスタマイズの柔軟性向上 |
| 126 | + - APIとしての利用価値向上 |
95 | 127 |
|
96 | 128 | ### 優先度:中 |
97 | | -1. **省略記号・句読点処理の改善** (Issue #839関連) |
98 | | -2. **無音制御の改善** (Issue #817関連) |
99 | | -3. **GPU最適化** (PR #429, #512) |
100 | | -4. **アライメント出力** (PR #407) |
| 129 | +1. **PR #429: GPU device_id designation** |
| 130 | + - 理由: マルチGPU環境での性能向上 |
| 131 | + - 大規模な音声合成タスクに有用 |
| 132 | + |
| 133 | +2. **PR #685: SSML break tags** (マージ済み) |
| 134 | + - 理由: より自然な発話制御 |
| 135 | + - 日本語の句読点処理と組み合わせて品質向上 |
| 136 | + |
| 137 | +3. **Issue #817: Silence randomness** |
| 138 | + - 理由: より自然な発話リズムの実現 |
| 139 | + - 日本語の間(ま)の表現に有効 |
101 | 140 |
|
102 | 141 | ### 優先度:低 |
103 | | -1. 他の東アジア言語との共通処理の調査 |
104 | | -2. 追加の出力フォーマットサポート |
| 142 | +1. **PR #512: AMD GPU acceleration** |
| 143 | + - 理由: より多くのハードウェアサポート |
| 144 | + - ただし、優先度は使用環境に依存 |
| 145 | + |
| 146 | +2. **PR #407: TSV alignment output** |
| 147 | + - 理由: 音声と文字の同期分析 |
| 148 | + - 研究・開発用途には有用 |
105 | 149 |
|
106 | 150 | ## 実装戦略 |
107 | 151 |
|
108 | | -### フェーズ1: 基本的な日本語サポートの完全化 |
109 | | -- 不足している音素の特定と実装 |
110 | | -- OpenJTalkとの統合強化 |
111 | | -- 基本的なテスト環境の構築 |
| 152 | +### フェーズ1: オリジナルの有用機能の取り込み |
| 153 | +- **PR #742**: Raw Phoneme Inputの実装 |
| 154 | + - 日本語の精密な制御に活用 |
| 155 | + - 既存の58音素体系との統合 |
| 156 | +- **PR #401**: IPA音素記法サポートの追加 |
| 157 | + - マルチ言語対応の強化 |
| 158 | + - 国際標準への準拠 |
| 159 | + |
| 160 | +### フェーズ2: パフォーマンスと品質の向上 |
| 161 | +- **PR #429**: GPU device_id指定機能 |
| 162 | + - 大規模処理の効率化 |
| 163 | +- **Issue #817**: 無音のランダム性制御 |
| 164 | + - 日本語の「間」の表現力向上 |
| 165 | +- マージ済み機能の活用(Speaker_id、SSML break tags) |
| 166 | + |
| 167 | +### フェーズ3: 研究・開発向け機能 |
| 168 | +- **PR #407**: TSVアライメント出力 |
| 169 | + - 音声研究用途 |
| 170 | +- **PR #512**: AMD GPU対応(環境依存) |
112 | 171 |
|
113 | | -### フェーズ2: 音素制御の高度化 |
114 | | -- IPA音素記法のサポート |
115 | | -- 生の音素入力機能 |
116 | | -- カスタム辞書のサポート |
| 172 | +## まとめ |
117 | 173 |
|
118 | | -### フェーズ3: パフォーマンスと品質の向上 |
119 | | -- GPU最適化の実装 |
120 | | -- 句読点・無音処理の改善 |
121 | | -- 音声品質の評価と改善 |
| 174 | +piper-plusは既に日本語TTSの主要な課題を解決していますが、オリジナルリポジトリから以下の機能を取り込むことで、さらなる価値を提供できます: |
122 | 175 |
|
123 | | -## まとめ |
| 176 | +1. **音素制御の柔軟性向上**: Raw Phoneme InputとIPA記法のサポート |
| 177 | +2. **パフォーマンス最適化**: GPU制御の改善 |
| 178 | +3. **自然性の向上**: 無音制御、SSMLサポートの活用 |
| 179 | +4. **多言語対応の強化**: PR #96と連携した国際標準への準拠 |
124 | 180 |
|
125 | | -piper-plusは日本語TTSに特化したフォークとして、以下の点に注力すべきです: |
| 181 | +これらの実装により、piper-plusは日本語に特化しつつも、国際的な標準に準拠した高品質なTTSシステムとして発展できるでしょう。 |
126 | 182 |
|
127 | | -1. **音素システムの完全性**: Issue #787で指摘されている音素不足の解決 |
128 | | -2. **柔軟な音素入力**: PR #742, #401の機能を取り入れた高度な音素制御 |
129 | | -3. **日本語特有の処理**: 句読点、長音、促音などの適切な処理 |
130 | | -4. **既存の改善の取り込み**: オリジナルリポジトリの有用な改善を選択的に統合 |
| 183 | +## 注意事項 |
131 | 184 |
|
132 | | -これらの実装により、piper-plusは高品質な日本語TTSシステムとして、オリジナルのPiperを補完する重要な役割を果たすことができるでしょう。 |
| 185 | +- Issue #787(日本語音素不足)は既に解決済み |
| 186 | +- Windows OpenJTalk対応も実装済み |
| 187 | +- 現在進行中のPR(#96-#100)との整合性を考慮して実装を進める必要がある |
0 commit comments