Skip to content

Commit

Permalink
スタイルID(style_id)のことを話者ID(speaker_id)としているコードを全部置き換える (#741)
Browse files Browse the repository at this point in the history
Co-authored-by: Hiroshiba <[email protected]>
  • Loading branch information
weweweok and Hiroshiba authored Oct 22, 2023
1 parent 37962e2 commit 86123f2
Show file tree
Hide file tree
Showing 13 changed files with 272 additions and 189 deletions.
92 changes: 52 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ echo -n "こんにちは、音声合成の世界へようこそ" >text.txt

curl -s \
-X POST \
"127.0.0.1:50021/audio_query?speaker=1"\
"127.0.0.1:50021/audio_query?style_id=1"\
--get --data-urlencode [email protected] \
> query.json

curl -s \
-H "Content-Type: application/json" \
-X POST \
-d @query.json \
"127.0.0.1:50021/synthesis?speaker=1" \
"127.0.0.1:50021/synthesis?style_id=1" \
> audio.wav
```

Expand All @@ -70,7 +70,7 @@ echo -n "ディープラーニングは万能薬ではありません" >text.txt

curl -s \
-X POST \
"127.0.0.1:50021/audio_query?speaker=1" \
"127.0.0.1:50021/audio_query?style_id=1" \
--get --data-urlencode [email protected] \
> query.json

Expand All @@ -82,7 +82,7 @@ cat query.json | grep -o -E "\"kana\":\".*\""
echo -n "ディイプラ'アニングワ/バンノ'オヤクデワ/アリマセ'ン" > kana.txt
curl -s \
-X POST \
"127.0.0.1:50021/accent_phrases?speaker=1&is_kana=true" \
"127.0.0.1:50021/accent_phrases?style_id=1&is_kana=true" \
--get --data-urlencode [email protected] \
> newphrases.json

Expand All @@ -93,35 +93,36 @@ curl -s \
-H "Content-Type: application/json" \
-X POST \
-d @newquery.json \
"127.0.0.1:50021/synthesis?speaker=1" \
"127.0.0.1:50021/synthesis?style_id=1" \
> audio.wav
```

### ユーザー辞書機能について

APIからユーザー辞書の参照、単語の追加、編集、削除を行うことができます。
API からユーザー辞書の参照、単語の追加、編集、削除を行うことができます。

#### 参照

`/user_dict`にGETリクエストを投げることでユーザー辞書の一覧を取得することができます
`/user_dict`に GET リクエストを投げることでユーザー辞書の一覧を取得することができます

```bash
curl -s -X GET "127.0.0.1:50021/user_dict"
```

#### 単語追加

`/user_dict_word`にPOSTリクエストを投げる事でユーザー辞書に単語を追加することができます。
URLパラメータとして、以下が必要です。
`/user_dict_word`に POST リクエストを投げる事でユーザー辞書に単語を追加することができます。
URL パラメータとして、以下が必要です。

- surface (辞書に登録する単語)
- pronunciation (カタカナでの読み方)
- accent_type (アクセント核位置、整数)

アクセント核位置については、こちらの文章が参考になるかと思います。
〇型となっている数字の部分がアクセント核位置になります。
https://tdmelodic.readthedocs.io/ja/latest/pages/introduction.html
https://tdmelodic.readthedocs.io/ja/latest/pages/introduction.html

成功した場合の返り値は単語に割り当てられるUUIDの文字列になります
成功した場合の返り値は単語に割り当てられる UUID の文字列になります

```bash
surface="test"
Expand All @@ -137,13 +138,14 @@ curl -s -X POST "127.0.0.1:50021/user_dict_word" \

#### 単語修正

`/user_dict_word/{word_uuid}`にPUTリクエストを投げる事でユーザー辞書の単語を修正することができます。
URLパラメータとして、以下が必要です。
`/user_dict_word/{word_uuid}`に PUT リクエストを投げる事でユーザー辞書の単語を修正することができます。
URL パラメータとして、以下が必要です。

- surface (辞書に登録するワード)
- pronunciation (カタカナでの読み方)
- accent_type (アクセント核位置、整数)

word_uuidは単語追加時に確認できるほか、ユーザー辞書を参照することでも確認できます。
word_uuid は単語追加時に確認できるほか、ユーザー辞書を参照することでも確認できます。
成功した場合の返り値は`204 No Content`になります。

```bash
Expand All @@ -162,9 +164,9 @@ curl -s -X PUT "127.0.0.1:50021/user_dict_word/$word_uuid" \

#### 単語削除

`/user_dict_word/{word_uuid}`にDELETEリクエストを投げる事でユーザー辞書の単語を削除することができます。
`/user_dict_word/{word_uuid}`に DELETE リクエストを投げる事でユーザー辞書の単語を削除することができます。

word_uuidは単語追加時に確認できるほか、ユーザー辞書を参照することでも確認できます。
word_uuid は単語追加時に確認できるほか、ユーザー辞書を参照することでも確認できます。
成功した場合の返り値は`204 No Content`になります。

```bash
Expand Down Expand Up @@ -199,7 +201,7 @@ curl -s \
-H "Content-Type: application/json" \
-X POST \
-d @query.json \
"127.0.0.1:50021/synthesis?speaker=$style_id" \
"127.0.0.1:50021/synthesis?style_id=$style_id" \
> audio.wav
```

Expand All @@ -216,7 +218,7 @@ echo -n "モーフィングを利用することで、2つの声を混ぜる

curl -s \
-X POST \
"127.0.0.1:50021/audio_query?speaker=0"\
"127.0.0.1:50021/audio_query?style_id=0"\
--get --data-urlencode [email protected] \
> query.json

Expand All @@ -225,7 +227,7 @@ curl -s \
-H "Content-Type: application/json" \
-X POST \
-d @query.json \
"127.0.0.1:50021/synthesis?speaker=0" \
"127.0.0.1:50021/synthesis?style_id=0" \
> audio.wav

export MORPH_RATE=0.5
Expand Down Expand Up @@ -268,11 +270,11 @@ curl -s -X GET "127.0.0.1:50021/speaker_info?speaker_uuid=7ffcb7ce-00ec-4bdc-82c
この API は実験的機能であり、エンジン起動時に引数で`--enable_cancellable_synthesis`を指定しないと有効化されません。
音声合成に必要なパラメータは`/synthesis`と同様です。

### CORS設定
### CORS 設定

VOICEVOXではセキュリティ保護のため`localhost``127.0.0.1``app://`Originなし以外のOriginからリクエストを受け入れないようになっています
VOICEVOX ではセキュリティ保護のため`localhost``127.0.0.1``app://`Origin なし以外の Origin からリクエストを受け入れないようになっています
そのため、一部のサードパーティアプリからのレスポンスを受け取れない可能性があります。
これを回避する方法として、エンジンから設定できるUIを用意しています
これを回避する方法として、エンジンから設定できる UI を用意しています

#### 設定方法

Expand Down Expand Up @@ -345,7 +347,8 @@ docker run --rm --gpus all -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:n
```
#### トラブルシューティング
GPU版を利用する場合、環境によってエラーが発生することがあります。その場合、`--runtime=nvidia``docker run`につけて実行すると解決できることがあります。
GPU 版を利用する場合、環境によってエラーが発生することがあります。その場合、`--runtime=nvidia``docker run`につけて実行すると解決できることがあります。
## 貢献者の方へ
Expand Down Expand Up @@ -419,29 +422,38 @@ CPU スレッド数が未指定の場合は、論理コア数の半分か物理
```
### 過去のバージョンのコアを使う
VOICEVOX Core 0.5.4以降のコアを使用する事が可能です。
Macでのlibtorch版コアのサポートはしていません。
VOICEVOX Core 0.5.4 以降のコアを使用する事が可能です。
Mac での libtorch 版コアのサポートはしていません。
#### 過去のバイナリを指定する
製品版VOICEVOXもしくはコンパイル済みエンジンのディレクトリを`--voicevox_dir`引数で指定すると、そのバージョンのコアが使用されます。
製品版 VOICEVOX もしくはコンパイル済みエンジンのディレクトリを`--voicevox_dir`引数で指定すると、そのバージョンのコアが使用されます。
```bash
python run.py --voicevox_dir="/path/to/voicevox"
```
Macでは、`DYLD_LIBRARY_PATH`の指定が必要です。
Mac では、`DYLD_LIBRARY_PATH`の指定が必要です。
```bash
DYLD_LIBRARY_PATH="/path/to/voicevox" python run.py --voicevox_dir="/path/to/voicevox"
```
#### 音声ライブラリを直接指定する
[VOICEVOX Coreのzipファイル](https://github.com/VOICEVOX/voicevox_core/releases)を解凍したディレクトリを`--voicelib_dir`引数で指定します。
[VOICEVOX Core の zip ファイル](https://github.com/VOICEVOX/voicevox_core/releases)を解凍したディレクトリを`--voicelib_dir`引数で指定します。
また、コアのバージョンに合わせて、[libtorch](https://pytorch.org/)や[onnxruntime](https://github.com/microsoft/onnxruntime)のディレクトリを`--runtime_dir`引数で指定します。
ただし、システムの探索パス上にlibtorch、onnxruntimeがある場合、`--runtime_dir`引数の指定は不要です。
`--voicelib_dir`引数、`--runtime_dir`引数は複数回使用可能です。
APIエンドポイントでコアのバージョンを指定する場合は`core_version`引数を指定してください。(未指定の場合は最新のコアが使用されます)
ただし、システムの探索パス上に libtorch、onnxruntime がある場合、`--runtime_dir`引数の指定は不要です。
`--voicelib_dir`引数、`--runtime_dir`引数は複数回使用可能です。
API エンドポイントでコアのバージョンを指定する場合は`core_version`引数を指定してください。(未指定の場合は最新のコアが使用されます)
```bash
python run.py --voicelib_dir="/path/to/voicevox_core" --runtime_dir="/path/to/libtorch_or_onnx"
```
Macでは、`--runtime_dir`引数の代わりに`DYLD_LIBRARY_PATH`の指定が必要です。
Mac では、`--runtime_dir`引数の代わりに`DYLD_LIBRARY_PATH`の指定が必要です。
```bash
DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevox_core"
```
Expand Down Expand Up @@ -493,7 +505,7 @@ python make_docs.py
## ビルド
この方法でビルドしたものは、リリースで公開されているものとは異なります。
また、GPUで利用するにはcuDNNやCUDA、DirectMLなどのライブラリが追加で必要となります
また、GPU で利用するには cuDNN や CUDA、DirectML などのライブラリが追加で必要となります
```bash
python -m pip install -r requirements-dev.txt
Expand Down Expand Up @@ -603,19 +615,19 @@ VOICEVOX エディターにうまく読み込ませられないときは、エ
### Variables
| name | description |
| :----------------- | :---------------------------------------------------------------------- |
| DOCKERHUB_USERNAME | Docker Hub ユーザ名 |
| name | description |
| :----------------- | :------------------ |
| DOCKERHUB_USERNAME | Docker Hub ユーザ名 |
### Secrets
| name | description |
| :----------------- | :---------------------------------------------------------------------- |
| DOCKERHUB_TOKEN | [Docker Hub アクセストークン](https://hub.docker.com/settings/security) |
| name | description |
| :-------------- | :---------------------------------------------------------------------- |
| DOCKERHUB_TOKEN | [Docker Hub アクセストークン](https://hub.docker.com/settings/security) |
## 事例紹介
**[voicevox-client](https://github.com/tuna2134/voicevox-client) [@tuna2134](https://github.com/tuna2134)** ・・・ VOICEVOX ENGINE のためのPythonラッパー
**[voicevox-client](https://github.com/tuna2134/voicevox-client) [@tuna2134](https://github.com/tuna2134)** ・・・ VOICEVOX ENGINE のための Python ラッパー
## ライセンス
Expand Down
4 changes: 2 additions & 2 deletions build_util/check_release_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ def test_release_build(dist_dir: Path, skip_run_process: bool) -> None:
# テキスト -> クエリ
text = "こんにちは、音声合成の世界へようこそ"
req = Request(
base_url + "audio_query?" + urlencode({"speaker": "1", "text": text}),
base_url + "audio_query?" + urlencode({"style_id": "1", "text": text}),
method="POST",
)
with urlopen(req) as res:
query = json.loads(res.read().decode("utf-8"))

# クエリ -> 音声
req = Request(base_url + "synthesis?speaker=1", method="POST")
req = Request(base_url + "synthesis?style_id=1", method="POST")
req.add_header("Content-Type", "application/json")
req.data = json.dumps(query).encode("utf-8")
with urlopen(req) as res:
Expand Down
Loading

0 comments on commit 86123f2

Please sign in to comment.