File size: 7,215 Bytes
f7bbae1 cb5154d 1412413 cb5154d 1412413 cb5154d 1412413 cb5154d 1412413 cb5154d 4424225 cb5154d 4424225 cb5154d 0c9fd29 cb5154d a27df4f a5178b1 a27df4f 1412413 4424225 cb5154d 0c9fd29 cb5154d f7bbae1 |
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 |
---
language:
- ja
base_model:
- parler-tts/parler-tts-mini-v1
- retrieva-jp/t5-base-long
pipeline_tag: text-to-speech
library_name: transformers
tags:
- text-to-speech
- annotation
- japanese
license: other
---
# Japanese Parler-TTS Mini
このリポジトリは、[parler-tts/parler-tts-mini-v1](https://huggingface.co/parler-tts/parler-tts-mini-v1)を基に、日本語でのテキスト読み上げを可能にするよう再学習したモデルを公開しています。本モデルは、軽量でありながら高品質な音声生成を提供します。
**注意**: 本家の[Parler-TTS](https://huggingface.co/collections/parler-tts/parler-tts-fully-open-source-high-quality-tts-66164ad285ba03e8ffde214c)で使用されているtokenizerとは互換性がありません。本モデル用に独自のtokenizerが採用されています。
---
## Japanese Parler-TTS Index
- [Japanese Parler-TTS Mini](https://huggingface.co/2121-8/japanese-parler-tts-mini)
- Japanese Parler-TTS Large (計算資源に余裕があったら学習します)
---
## 📖 クイックインデックス
* [👨💻 インストール](#👨💻-インストール)
* [🎲 ランダムな音声での使用方法](#🎲-ランダムな音声での使用方法)
* [🎯 特定の話者を指定する方法](#🎯-特定の話者を指定する方法)
---
## 🛠️ 使用方法
### 👨💻 インストール
以下のコマンドでインストールできます。
```sh
pip install git+https://github.com/huggingface/parler-tts.git
pip install git+https://github.com/getuka/RubyInserter.git
```
---
### 🎲 ランダムな音声での使用方法
```python
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
from rubyinserter import add_ruby
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("2121-8/japanese-parler-tts-mini").to(device)
prompt_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="prompt_tokenizer")
description_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="description_tokenizer")
prompt = "こんにちは、今日はどのようにお過ごしですか?"
description = "A female speaker with a slightly high-pitched voice delivers her words at a moderate speed with a quite monotone tone in a confined environment, resulting in a quite clear audio recording."
prompt = add_ruby(prompt)
input_ids = description_tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_input_ids = prompt_tokenizer(prompt, return_tensors="pt").input_ids.to(device)
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("parler_tts_japanese_out.wav", audio_arr, model.config.sampling_rate)
```
### サンプル音声
<audio controls>
<source src="https://huggingface.co/2121-8/japanese-parler-tts-mini/resolve/main/audio/normal_sample_1.wav" type="audio/wav">
お使いのブラウザはオーディオタグをサポートしていません。
</audio>
</br>
<audio controls>
<source src="https://huggingface.co/2121-8/japanese-parler-tts-mini/resolve/main/audio/normal_sample_2.wav" type="audio/wav">
お使いのブラウザはオーディオタグをサポートしていません。
</audio>
</br>
<audio controls>
<source src="https://huggingface.co/2121-8/japanese-parler-tts-mini/resolve/main/audio/normal_sample_3.wav" type="audio/wav">
お使いのブラウザはオーディオタグをサポートしていません。
</audio>
---
### 🎯 特定の話者を指定する方法
使用した学習データ: [JSUT](https://sites.google.com/site/shinnosuketakamichi/publication/jsut)
```python
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
from rubyinserter import add_ruby
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("2121-8/japanese-parler-tts-mini").to(device)
prompt_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="prompt_tokenizer")
description_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="description_tokenizer")
prompt = "こんにちは、今日はどのようにお過ごしですか?"
description = "JSUT speaks with an expressive and animated tone in an excellent recording, with a very close-sounding proximity that suggests a private and intimate setting, and delivers her words at a rapid pace."
prompt = add_ruby(prompt)
input_ids = description_tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_input_ids = prompt_tokenizer(prompt, return_tensors="pt").input_ids.to(device)
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("parler_tts_japanese_out.wav", audio_arr, model.config.sampling_rate)
```
### サンプル音声
<audio controls>
<source src="https://huggingface.co/2121-8/japanese-parler-tts-mini/resolve/main/audio/jsut sample_1.wav" type="audio/wav">
お使いのブラウザはオーディオタグをサポートしていません。
</audio>
</br>
<audio controls>
<source src="https://huggingface.co/2121-8/japanese-parler-tts-mini/resolve/main/audio/jsut sample_2.wav" type="audio/wav">
お使いのブラウザはオーディオタグをサポートしていません。
</audio>
</br>
<audio controls>
<source src="https://huggingface.co/2121-8/japanese-parler-tts-mini/resolve/main/audio/jsut sample_3.wav" type="audio/wav">
お使いのブラウザはオーディオタグをサポートしていません。
</audio>
---
### 著作権および使用に関する免責事項
本モデルおよびリポジトリは、研究、教育、商用利用を含む幅広い目的での利用が許可されています。ただし、以下の条件を遵守してください。
1. **商用利用に関する条件**
本モデルを使用して生成された音声や成果物を商用目的で利用することは可能ですが、本モデルそのもの(ファイルや重みデータなど)の販売は禁じられています。
2. **適切性についての免責**
本モデルの利用により得られる結果の正確性、合法性、または適切性について、作成者は一切保証しません。
3. **ユーザーの責任**
本モデルを使用する際は、適用されるすべての法律や規制を遵守してください。また、生成されたコンテンツに起因する責任はすべてユーザーに帰属します。
4. **作成者の免責**
本リポジトリおよびモデルの作成者は、著作権侵害やその他の法的問題に関する責任を一切負いません。
5. **削除要求への対応**
著作権問題が発生した場合、問題のあるリソースやデータを速やかに削除します。
--- |