Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

整理: Speaker に関するドキュメントを キャラクター ベースに変更 #1416

Merged
merged 19 commits into from
Jun 27, 2024
Merged
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -249,7 +249,7 @@ curl -s -X DELETE "127.0.0.1:50021/user_dict_word/$word_uuid"

### プリセット機能について

`presets.yaml`を編集することで話者や話速などのプリセットを使うことができます
`presets.yaml`を編集することでキャラクターや話速などのプリセットを使うことができます

```bash
echo -n "プリセットをうまく活用すれば、サードパーティ間で同じ設定を使うことができます" >text.txt
@@ -322,7 +322,7 @@ curl -s \
> audio.wav
```

### 話者の追加情報を取得するサンプルコード
### 喋れるキャラクターの追加情報を取得するサンプルコード
tarepan marked this conversation as resolved.
Show resolved Hide resolved

追加情報の中の portrait.png を取得するコードです。
([jq](https://stedolan.github.io/jq/)を使用して json をパースしています。)
4 changes: 2 additions & 2 deletions docs/VOICEVOX音声合成エンジンとの連携.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,6 @@
- バージョンが上がっても、`/audio_query`で返ってくる値をそのまま`/synthesis`に POST すれば音声合成できるようにする予定です
- `AudioQuery`のパラメータは増えますが、なるべくデフォルト値で以前と変わらない音声が生成されるようにします
- 以前のバージョンの`AudioQuery`を新しいバージョンの`/synthesis`にそのまま POST できるようにします(後方互換)
- バージョン 0.7 から音声スタイルが実装されました。スタイルの情報は`/speakers`から取得できます
- バージョン 0.7 から音声スタイルが実装されました。スタイルの情報は`/speakers`及び`/singers`から取得できます
- スタイルの情報にある`style_id`を`speaker`に指定することで、今まで通り音声合成ができます
- style_id の指定先が speaker なのは互換性のためです
- `style_id`の指定先が`speaker`なのは互換性のためです
2 changes: 1 addition & 1 deletion test/benchmark/speed/request.py
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@
def benchmark_request(server: ServerType, root_dir: Path | None = None) -> float:
"""
エンジンへのリクエストにかかる時間を測定する。
`GET /` はエンジン内部処理が最小であるため、全話者分のリクエスト-レスポンス(ネットワーク処理部分)にかかる時間を擬似的に計測できる。
`GET /` はエンジン内部処理が最小であるため、全キャラクター分のリクエスト-レスポンス(ネットワーク処理部分)にかかる時間を擬似的に計測できる。
"""

client = generate_client(server, root_dir)
28 changes: 20 additions & 8 deletions test/benchmark/speed/speaker.py
tarepan marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""話者に関係したリクエストにかかる時間の測定"""
"""キャラクターに関係したリクエストにかかる時間の測定"""

import argparse
from pathlib import Path
@@ -22,7 +22,7 @@ def execute() -> None:
def benchmark_get_speaker_info_all(
server: ServerType, root_dir: Path | None = None
) -> float:
"""全話者への `GET /speaker_info` にかかる時間を測定する。"""
"""全ての喋れるキャラクターへの `GET /speaker_info` にかかる時間を測定する。"""

client = generate_client(server, root_dir)

@@ -45,8 +45,8 @@ def benchmark_request_time_for_all_talk_characters(
server: ServerType, root_dir: Path | None = None
) -> float:
"""
全話者数と同じ回数の `GET /` にかかる時間を測定する。
`GET /` はエンジン内部処理が最小であるため、全話者分のリクエスト-レスポンス(ネットワーク処理部分)にかかる時間を擬似的に計測できる。
喋れるキャラクターの数と同じ回数の `GET /` にかかる時間を測定する。
`GET /` はエンジン内部処理が最小であるため、全ての喋れるキャラクター分のリクエスト-レスポンス(ネットワーク処理部分)にかかる時間を擬似的に計測できる。
"""

client = generate_client(server, root_dir)
@@ -86,12 +86,24 @@ def execute() -> None:
_result_spk_infos_localhost = benchmark_get_speaker_info_all("localhost", root_dir)
result_spk_infos_fakeserve = "{:.3f}".format(_result_spk_infos_fakeserve)
result_spk_infos_localhost = "{:.3f}".format(_result_spk_infos_localhost)
print(f"全話者 `GET /speaker_info` fakeserve: {result_spk_infos_fakeserve} sec")
print(f"全話者 `GET /speaker_info` localhost: {result_spk_infos_localhost} sec")
print(
f"全ての喋れるキャラクター `GET /speaker_info` fakeserve: {result_spk_infos_fakeserve} sec"
)
print(
f"全ての喋れるキャラクター `GET /speaker_info` localhost: {result_spk_infos_localhost} sec"
)

req_time_all_fake = benchmark_request_time_for_all_talk_characters("fake", root_dir)
req_time_all_local = benchmark_request_time_for_all_talk_characters(
"localhost", root_dir
)
print("全話者 `GET /` fakeserve: {:.3f} sec".format(req_time_all_fake))
print("全話者 `GET /` localhost: {:.3f} sec".format(req_time_all_local))
print(
"全ての喋れるキャラクター `GET /` fakeserve: {:.3f} sec".format(
req_time_all_fake
)
)
print(
"全ての喋れるキャラクター `GET /` localhost: {:.3f} sec".format(
req_time_all_local
)
)
Loading