File size: 8,381 Bytes
589cf39 5c33898 8c273a2 5c33898 4aa8730 5c33898 52ceb9a 5c33898 4aa8730 ebb7bde 4aa8730 99253e5 5c33898 2809aa6 5c33898 2809aa6 5c33898 2809aa6 5c33898 9785d33 5c33898 9785d33 52ceb9a 7cb0fb7 4156466 7cb0fb7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
---
thumbnail: https://i.postimg.cc/y6gT18Tn/Untitled-design-1.png
license: cc-by-nc-4.0
language:
- ja
pipeline_tag: text-to-speech
tags:
- '#StyleTTS'
- '#Japanese'
- Diffusion
- Prompt
- '#TTS'
- '#TexttoSpeech'
- '#speech'
- '#StyleTTS2'
---
<div style="text-align:center;">
<img src="https://i.postimg.cc/y6gT18Tn/Untitled-design-1.png" alt="Logo" style="width:300px; height:auto;">
</div>
# Tsukasa 司 Speech: Engineering the Naturalness and Rich Expressiveness
**tl;dr** : I made a very cool japanese speech generation model.
[個人プロジェクト](https://github.com/Respaired/Project-Kanade)の一部で、日本語Speech分野のさらなる発展に焦点を当てています。
- **Tsukasa** (24kHz)のHuggingFaceスペースを使用してください: [![huggingface](https://img.shields.io/badge/Interactive_Demo-HuggingFace-yellow)](https://huggingface.co/spaces/Respair/Tsukasa_Speech)
- **Tsumugi** (48kHz)のHuggingFaceスペース: [![huggingface](https://img.shields.io/badge/Interactive_Demo-HuggingFace-yellow)](https://huggingface.co/spaces/Respair/Tsumugi_48khz)
- Shoukan labのDiscordサーバーに参加してください、私がよく訪れる居心地の良い場所です -> [![Discord](https://img.shields.io/discord/1197679063150637117?logo=discord&logoColor=white&label=Join%20our%20Community)](https://discord.gg/JrPSzdcM)
## これは何?
*注意*: このモデルは日本語のみをサポートしていますが、Gradioデモでローマ字、またローマ字と普通の日本語をミックスしたテキストを入力することができます。
これはスピーチ生成ネットワークで、生成された音声の表現力と制御性を最大化することを目的としています。その中核にあるのは[StyleTTS 2](https://github.com/yl4579/StyleTTS2)のアーキテクチャで、以下のような変更が加えられています:
- 完全に新しいデータ前処理パイプラインの導入
- 通常のPyTorch LSTMレイヤーではなくmLSTMレイヤーを採用し、テキストおよびプロソディエンコーダーの容量を高めるためにパラメーター数を増やしている
- PL-Bert、Pitch Extractor、Text Alignerを一から再学習
- SLMにはWavLMの代わりにWhisperのエンコーダーを使用
- 48kHzの設定
- 非言語サウンド(溜息、ポーズなど)や笑い声の表現力が向上
- スタイルベクトルのサンプリングの新しい方法
- プロンプト可能な音声合成
- ローマ字の入力や日本語とローマ字の混在に対応した賢いフォネミゼーションアルゴリズム
- DDP(Distributed Data Parallel)とBF16(Bfloat16)の訓練が修正された(ほとんど!)
2つのチェックポイントが使用できます。Tsukasa and Tsumugi(仮称)です。
Tsukasaは約800時間のデータで学習されています。主にゲームやノベルからのデータで、一部はプライベートデータセットからのものです。
そのため、日本語は「アニメ日本語」(実際の日常会話とは異なる)になります。
Tsumugi(仮称)は、この データの一部約300時間を使用し、さらに手動クリーニングや注釈付けを行った制御された方法で学習されています。
残念ながら、Tsumugiのコンテキスト長は制限されているため、イントネーションの処理はTsukasaほど良くありません。
また、Kotodamaのインファレンスの最初のモードしかサポートしていないため、ボイスデザインはできません。
Brought to you by:
- Soshyant (私)
- [Auto Meta](https://github.com/Alignment-Lab-AI)
- [Cryptowooser](https://github.com/cryptowooser)
- [Buttercream](https://github.com/korakoe)
このプロジェクトは、StyleTTSの著者であるYinghao Aaron Li氏の成果に基づいています。<br> 彼はこの分野で最も才能あるエンジニアの一人だと思います。
また、スクリプトのデバッグで協力してくれたKarestoさんとRavenさんにも感謝します。本当に素晴らしい人たちです。
## なぜ?
最近、より大規模なモデルへの傾向がありますが、私は逆の道を行き、既存のツールを活用することで限界まで性能を引き上げることを試みています。
スケールが高くなくてもいい結果が得られるかもしれないことを試しています。
日本語に関連するいくつかの事項もあります。例えば、この言語のイントネーションをどのように改善できるか、文脈によって綴りが変わる文章をどのように正確に注釈付けできるかなどです。
## 使い方
# Inference:
Gradioデモ:
```bash
python app_tsuka.py
```
または、推論ノートブックをチェックしてください。その前に、**重要な注意事項**セクションをよく読んでください。
# Training:
**第1段階**:
```bash
accelerate launch train_first.py --config_path ./Configs/config.yml
```
**第2段階**:
```bash
accelerate launch accelerate_train_second.py --config_path ./Configs/config.yml
```
SLMの共同TrainはマルチGPUでは機能しません。(そもそもこの段階を行うのは必要かどうか自体が疑問です、私も使用していません。)
または:
```bash
launch train_first.py --config_path ./Configs/config.yml
```
**第3段階**(Kotodama、プロンプトエンコーディングなど):
*未予定*
## 今後の改善案
いくつかの改善点が考えられます。必ずしも私が取り組むわけではありませんが、提案として捉えてください:
- [o] デコーダーの変更(具体的に[fregrad](https://github.com/kaistmm/fregrad)が面白そう。)
- [o] 別のアルゴリズムを使ってPitch Extractorを再訓練
- [o] 非音声サウンドの生成は改善されましたが、完全な非音声出力は生成できません。これは、hard alignmentの影響かもしれません。
- [o] スタイルエンコーダーを別のモダリティとしてLLMsで使用する(Style-Talkerに似たアプローチ)
## 前提条件
1. Python >= 3.11
2. このリポジトリをクローンします:
```bash
git clone https://github.com/yl4579/StyleTTS2.git
cd StyleTTS2
```
3. Pythonの要件をインストールします:
```bash
pip install -r requirements.txt
```
## 訓練の詳細
- 8x A40s + 2x V100s(32GBずつ)
- 750 ~ 800時間のデータ
- Bfloat16
- 約3週間の訓練、全体で3ヶ月(データパイプラインの作業を含む)
- Google Cloudベースで概算すると、66.6 kg CO2eq.の二酸化炭素排出(Google Cloudは使用していませんが、クラスターがアメリカにあるため、非常に大まかな推定です。)
### 重要な注意事項
[こちらへ](https://huggingface.co/Respair/Tsukasa_Speech/blob/main/%E9%87%8D%E8%A6%81%E3%81%AA%E3%83%A1%E3%83%A2.md)
ご質問があった場合は、遠慮なく教えてください。
```
[email protected]
```
Discordも可能です。
## Some cool and related projects:
[Kokoro](https://huggingface.co/spaces/hexgrad/Kokoro-TTS) - a very nice and light weight TTS, based on StyleTTS. supports Japanese and English.<br>
[VoPho](https://github.com/ShoukanLabs/VoPho) - a meta phonemizer to rule them all. it will automatically handle any languages with hand-picked high quality phonemizers.<br>
## References
- [yl4579/StyleTTS2](https://github.com/yl4579/StyleTTS2)
- [NX-AI/xlstm](https://github.com/NX-AI/xlstm)
- [archinetai/audio-diffusion-pytorch](https://github.com/archinetai/audio-diffusion-pytorch)
- [jik876/hifi-gan](https://github.com/jik876/hifi-gan)
- [rishikksh20/iSTFTNet-pytorch](https://github.com/rishikksh20/iSTFTNet-pytorch)
- [nii-yamagishilab/project-NN-Pytorch-scripts/project/01-nsf](https://github.com/nii-yamagishilab/project-NN-Pytorch-scripts/tree/master/project/01-nsf)
```
@article{xlstm,
title={xLSTM: Extended Long Short-Term Memory},
author={Beck, Maximilian and P{\"o}ppel, Korbinian and Spanring, Markus and Auer, Andreas and Prudnikova, Oleksandra and Kopp, Michael and Klambauer, G{\"u}nter and Brandstetter, Johannes and Hochreiter, Sepp},
journal={arXiv preprint arXiv:2405.04517},
year={2024}
}
``` |