diff --git a/README.md b/README.md index 116c4d88f..c6064872b 100644 --- a/README.md +++ b/README.md @@ -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 ``` -### 話者の追加情報を取得するサンプルコード +### キャラクターの追加情報を取得するサンプルコード 追加情報の中の portrait.png を取得するコードです。 ([jq](https://stedolan.github.io/jq/)を使用して json をパースしています。) diff --git "a/docs/VOICEVOX\351\237\263\345\243\260\345\220\210\346\210\220\343\202\250\343\203\263\343\202\270\343\203\263\343\201\250\343\201\256\351\200\243\346\220\272.md" "b/docs/VOICEVOX\351\237\263\345\243\260\345\220\210\346\210\220\343\202\250\343\203\263\343\202\270\343\203\263\343\201\250\343\201\256\351\200\243\346\220\272.md" index 38a95c6ad..33ad31397 100644 --- "a/docs/VOICEVOX\351\237\263\345\243\260\345\220\210\346\210\220\343\202\250\343\203\263\343\202\270\343\203\263\343\201\250\343\201\256\351\200\243\346\220\272.md" +++ "b/docs/VOICEVOX\351\237\263\345\243\260\345\220\210\346\210\220\343\202\250\343\203\263\343\202\270\343\203\263\343\201\250\343\201\256\351\200\243\346\220\272.md" @@ -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`なのは互換性のためです diff --git a/test/benchmark/speed/request.py b/test/benchmark/speed/request.py index 63b0ec8ec..86485c024 100644 --- a/test/benchmark/speed/request.py +++ b/test/benchmark/speed/request.py @@ -9,7 +9,7 @@ def benchmark_request(server: ServerType, root_dir: Path | None = None) -> float: """ エンジンへのリクエストにかかる時間を測定する。 - `GET /` はエンジン内部処理が最小であるため、全話者分のリクエスト-レスポンス(ネットワーク処理部分)にかかる時間を擬似的に計測できる。 + `GET /` はエンジン内部処理が最小であるため、全キャラクター分のリクエスト-レスポンス(ネットワーク処理部分)にかかる時間を擬似的に計測できる。 """ client = generate_client(server, root_dir) diff --git a/test/benchmark/speed/speaker.py b/test/benchmark/speed/speaker.py index 058dc5211..ca2f5ed45 100644 --- a/test/benchmark/speed/speaker.py +++ b/test/benchmark/speed/speaker.py @@ -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 + ) + ) diff --git a/test/e2e/__snapshots__/test_characters.ambr b/test/e2e/__snapshots__/test_characters.ambr index b7ded7471..d464d8a78 100644 --- a/test/e2e/__snapshots__/test_characters.ambr +++ b/test/e2e/__snapshots__/test_characters.ambr @@ -1,157 +1,157 @@ # serializer version: 1 -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_icon] - 'MD5:517ba089e0b03f8868af2ce956f7699d' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_voice_sample_0] - 'MD5:d368ea4f7af3fba9f9f7fa862e50590f' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_voice_sample_1] - 'MD5:a844eb96e25efd52dfee76d023eda0c8' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_voice_sample_2] - 'MD5:4cd9a6ff5ac76ea1c267c99b2cfe925f' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_icon] - 'MD5:562ad0f61ca6dd81e89a4479f97dcd9f' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_voice_sample_0] - 'MD5:f214d07c3fb5332e429abb17921eecb5' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_voice_sample_1] - 'MD5:46296628b586d968054cc43ad733dd4a' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_voice_sample_2] - 'MD5:919e8e440b31b13fb0d2aae03061661f' -# --- -# name: test_歌手の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_portrait] - 'MD5:27777cb0883c98cd9870707005bf1faf' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_icon] - 'MD5:c6a8ddea789d8115372db31b4a76d2aa' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_portrait] - 'MD5:2b339e97d7ae0b6b215de842ff12515e' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_voice_sample_0] - 'MD5:5333edce35b3806f1818c407cd74b66b' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_voice_sample_1] - 'MD5:720ab16616e8e3e8e15535c9f6fd1f03' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_voice_sample_2] - 'MD5:444dd9f019828f3773192cca7d1099df' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_icon] - 'MD5:d2c7c85a9919372ef62ad49786bd7fc4' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_portrait] - 'MD5:6f7cd8ecb9d2d8de0ed410e05350ac72' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_voice_sample_0] - 'MD5:4add3a1cf25c4b6ce6d35aaa1f760071' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_voice_sample_1] - 'MD5:42d20380d8d6fc95916037e4da990aaa' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_voice_sample_2] - 'MD5:af22bcd03f4959dc8f0e4ac1d04854e0' -# --- -# name: test_歌手の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_portrait] - 'MD5:78228648fe527ee23597b66db59a4f94' -# --- -# name: test_歌手の情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_icon] - 'MD5:1e3d0a6e88264b1b99839aeb7c7cbe1f' -# --- -# name: test_歌手の情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_voice_sample_0] - 'MD5:e8626456ba706690676639e61ad43b73' -# --- -# name: test_歌手の情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_voice_sample_1] - 'MD5:93e3d5c44bbad3ddfc43953f5c751670' -# --- -# name: test_歌手の情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_voice_sample_2] - 'MD5:765ff637563e64182ace61fb5ca7daf4' -# --- -# name: test_歌手の情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_portrait] - 'MD5:381ba07cbcad95f1c99109f5f6d096a8' -# --- -# name: test_話者の情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_icon] +# name: test_喋れるキャラクターの情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_icon] 'MD5:1fe576e75458c752cfeecc1e93a29886' # --- -# name: test_話者の情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_portrait] 'MD5:56b2cfc4a9118c40a999e151c0ac647e' # --- -# name: test_話者の情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_voice_sample_0] +# name: test_喋れるキャラクターの情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_voice_sample_0] 'MD5:62cce06e564276499df6014e7182368d' # --- -# name: test_話者の情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_voice_sample_1] +# name: test_喋れるキャラクターの情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_voice_sample_1] 'MD5:2164af6fc692d5b2117dfd845c880f81' # --- -# name: test_話者の情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_voice_sample_2] +# name: test_喋れるキャラクターの情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_8_voice_sample_2] 'MD5:4e81220a91745cf2ab7b632cd528ffbd' # --- -# name: test_話者の情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[35b2c544-660e-401e-b503-0e14c635303a_portrait] 'MD5:bd6cf66dcc652f56892b14b423f6f37c' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_icon] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_icon] 'MD5:becb1cc2aaf82623a13a1250a39d7393' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_voice_sample_0] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_voice_sample_0] 'MD5:a9bf75355816d858213cb116942fe499' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_voice_sample_1] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_voice_sample_1] 'MD5:0dc81612c1f305b6210ef325a4518e53' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_voice_sample_2] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_1_voice_sample_2] 'MD5:ba5694044d8e7e0bffa9578d22ba2ba8' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_icon] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_icon] 'MD5:9a3690c368cd9a4ecb1940ff9eb2c955' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_portrait] 'MD5:0308b1a8e7a849e8be5ea699706f5097' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_voice_sample_0] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_voice_sample_0] 'MD5:0fd8a039030ea31560c84e91f955e4cd' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_voice_sample_1] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_voice_sample_1] 'MD5:c249264fa985fd4ab5e940c7e813db3e' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_voice_sample_2] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_3_voice_sample_2] 'MD5:6a0bc8b54543fe816f37cb286795ad07' # --- -# name: test_話者の情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_portrait] 'MD5:27777cb0883c98cd9870707005bf1faf' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_icon] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_icon] 'MD5:1f1da5f25968c638a783bf6ba9df9420' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_portrait] 'MD5:1724b3741e58978f5b9db25eb6575d9b' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_voice_sample_0] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_voice_sample_0] 'MD5:79d52a44a8dc8548616c300e49b37a94' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_voice_sample_1] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_voice_sample_1] 'MD5:d31e59cf938a46d156add0da486fe5e2' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_voice_sample_2] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_0_voice_sample_2] 'MD5:73d7e1f311263ab7e1b468318cb8575a' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_icon] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_icon] 'MD5:0b158046338f60a53e9afdb7797c5864' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_portrait] 'MD5:593c75329b6531e5ae0266a708e5ebc0' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_voice_sample_0] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_voice_sample_0] 'MD5:8e917c07fe5d444eddd4b451b7dc8d83' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_voice_sample_1] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_voice_sample_1] 'MD5:0cf95e313bc5c3314be6a71e5021fad2' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_voice_sample_2] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_2_voice_sample_2] 'MD5:43f9f43e4607015e7ab3bd016bee5509' # --- -# name: test_話者の情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_portrait] +# name: test_喋れるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_portrait] 'MD5:78228648fe527ee23597b66db59a4f94' # --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_icon] + 'MD5:517ba089e0b03f8868af2ce956f7699d' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_voice_sample_0] + 'MD5:d368ea4f7af3fba9f9f7fa862e50590f' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_voice_sample_1] + 'MD5:a844eb96e25efd52dfee76d023eda0c8' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_5_voice_sample_2] + 'MD5:4cd9a6ff5ac76ea1c267c99b2cfe925f' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_icon] + 'MD5:562ad0f61ca6dd81e89a4479f97dcd9f' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_voice_sample_0] + 'MD5:f214d07c3fb5332e429abb17921eecb5' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_voice_sample_1] + 'MD5:46296628b586d968054cc43ad733dd4a' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_7_voice_sample_2] + 'MD5:919e8e440b31b13fb0d2aae03061661f' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9_portrait] + 'MD5:27777cb0883c98cd9870707005bf1faf' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_icon] + 'MD5:c6a8ddea789d8115372db31b4a76d2aa' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_portrait] + 'MD5:2b339e97d7ae0b6b215de842ff12515e' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_voice_sample_0] + 'MD5:5333edce35b3806f1818c407cd74b66b' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_voice_sample_1] + 'MD5:720ab16616e8e3e8e15535c9f6fd1f03' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_4_voice_sample_2] + 'MD5:444dd9f019828f3773192cca7d1099df' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_icon] + 'MD5:d2c7c85a9919372ef62ad49786bd7fc4' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_portrait] + 'MD5:6f7cd8ecb9d2d8de0ed410e05350ac72' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_voice_sample_0] + 'MD5:4add3a1cf25c4b6ce6d35aaa1f760071' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_voice_sample_1] + 'MD5:42d20380d8d6fc95916037e4da990aaa' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_6_voice_sample_2] + 'MD5:af22bcd03f4959dc8f0e4ac1d04854e0' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff_portrait] + 'MD5:78228648fe527ee23597b66db59a4f94' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_icon] + 'MD5:1e3d0a6e88264b1b99839aeb7c7cbe1f' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_voice_sample_0] + 'MD5:e8626456ba706690676639e61ad43b73' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_voice_sample_1] + 'MD5:93e3d5c44bbad3ddfc43953f5c751670' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_9_voice_sample_2] + 'MD5:765ff637563e64182ace61fb5ca7daf4' +# --- +# name: test_歌えるキャラクターの情報をURLで取得できる[b1a81618-b27b-40d2-b0ea-27a9ad408c4b_portrait] + 'MD5:381ba07cbcad95f1c99109f5f6d096a8' +# --- diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[35b2c544-660e-401e-b503-0e14c635303a].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" "b/test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\350\251\261\350\200\205\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" rename to "test/e2e/__snapshots__/test_characters/test_\345\226\213\343\202\214\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222URL\343\201\247\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[388f246b-8c41-4ac1-8e2d-5d79f3ff56d9].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\343\201\256\346\203\205\345\240\261\343\202\222\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213[b1a81618-b27b-40d2-b0ea-27a9ad408c4b].json" diff --git "a/test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" "b/test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" similarity index 100% rename from "test/e2e/__snapshots__/test_characters/test_\346\255\214\346\211\213\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" rename to "test/e2e/__snapshots__/test_characters/test_\346\255\214\343\201\210\343\202\213\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\200\350\246\247\343\201\214\345\217\226\345\276\227\343\201\247\343\201\215\343\202\213.json" diff --git "a/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" "b/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" index 627213d98..ffea434c0 100644 --- "a/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" +++ "b/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" @@ -148,7 +148,7 @@ "type": "string" }, "speakers": { - "description": "音声ライブラリに含まれる話者のリスト", + "description": "音声ライブラリに含まれるキャラクターのリスト", "items": { "$ref": "#/components/schemas/LibrarySpeaker" }, @@ -237,7 +237,7 @@ "type": "string" }, "speakers": { - "description": "音声ライブラリに含まれる話者のリスト", + "description": "音声ライブラリに含まれるキャラクターのリスト", "items": { "$ref": "#/components/schemas/LibrarySpeaker" }, @@ -468,7 +468,7 @@ "type": "string" }, "speakers": { - "description": "音声ライブラリに含まれる話者のリスト", + "description": "音声ライブラリに含まれるキャラクターのリスト", "items": { "$ref": "#/components/schemas/LibrarySpeaker" }, @@ -504,7 +504,7 @@ "type": "object" }, "LibrarySpeaker": { - "description": "音声ライブラリに含まれる話者の情報", + "description": "音声ライブラリに含まれるキャラクターの情報", "properties": { "speaker": { "$ref": "#/components/schemas/Speaker" @@ -597,7 +597,7 @@ "MorphableTargetInfo": { "properties": { "is_morphable": { - "description": "指定した話者に対してモーフィングの可否", + "description": "指定したキャラクターに対してモーフィングの可否", "title": "Is Morphable", "type": "boolean" } @@ -708,7 +708,7 @@ "type": "number" }, "speaker_uuid": { - "description": "話者のUUID", + "description": "キャラクターのUUID", "title": "Speaker Uuid", "type": "string" }, @@ -762,7 +762,7 @@ "type": "object" }, "Speaker": { - "description": "話者情報", + "description": "キャラクター情報", "properties": { "name": { "description": "名前", @@ -770,7 +770,7 @@ "type": "string" }, "speaker_uuid": { - "description": "話者のUUID", + "description": "キャラクターのUUID", "title": "Speaker Uuid", "type": "string" }, @@ -788,10 +788,10 @@ "$ref": "#/components/schemas/SpeakerSupportedFeatures" } ], - "description": "話者の対応機能" + "description": "キャラクターの対応機能" }, "version": { - "description": "話者のバージョン", + "description": "キャラクターのバージョン", "title": "Version", "type": "string" } @@ -806,7 +806,7 @@ "type": "object" }, "SpeakerInfo": { - "description": "話者の追加情報", + "description": "キャラクターの追加情報", "properties": { "policy": { "description": "policy.md", @@ -836,7 +836,7 @@ "type": "object" }, "SpeakerStyle": { - "description": "話者のスタイル情報", + "description": "キャラクターのスタイル情報", "properties": { "id": { "description": "スタイルID", @@ -869,11 +869,11 @@ "type": "object" }, "SpeakerSupportedFeatures": { - "description": "話者の対応機能の情報", + "description": "キャラクターの対応機能の情報", "properties": { "permitted_synthesis_morphing": { "default": "ALL", - "description": "モーフィング機能への対応。'ALL' は「全て許可」、'SELF_ONLY' は「同じ話者内でのみ許可」、'NOTHING' は「全て禁止」", + "description": "モーフィング機能への対応。'ALL' は「全て許可」、'SELF_ONLY' は「同じキャラクター内でのみ許可」、'NOTHING' は「全て禁止」", "enum": [ "ALL", "SELF_ONLY", @@ -2260,7 +2260,7 @@ }, "/morphable_targets": { "post": { - "description": "指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。\n返り値のスタイルIDはstring型なので注意。", + "description": "指定されたベーススタイルに対してエンジン内の各キャラクターがモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。\n返り値のスタイルIDはstring型なので注意。", "operationId": "morphable_targets_morphable_targets_post", "parameters": [ { @@ -2316,7 +2316,7 @@ "description": "Validation Error" } }, - "summary": "指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する", + "summary": "指定したスタイルに対してエンジン内のキャラクターがモーフィングが可能か判定する", "tags": [ "音声合成" ] @@ -2591,7 +2591,7 @@ }, "/singer_info": { "get": { - "description": "指定されたspeaker_uuidの歌手に関する情報をjson形式で返します。\n画像や音声はresource_formatで指定した形式で返されます。", + "description": "UUID で指定された歌えるキャラクターの情報を返します。\n画像や音声はresource_formatで指定した形式で返されます。", "operationId": "singer_info_singer_info_get", "parameters": [ { @@ -2657,7 +2657,7 @@ }, "/singers": { "get": { - "description": "歌手情報の一覧を取得します", + "description": "歌えるキャラクターの情報の一覧を返します。", "operationId": "singers_singers_get", "parameters": [ { @@ -2704,7 +2704,7 @@ }, "/speaker_info": { "get": { - "description": "指定されたspeaker_uuidの話者に関する情報をjson形式で返します。\n画像や音声はresource_formatで指定した形式で返されます。", + "description": "UUID で指定された喋れるキャラクターの情報を返します。\n画像や音声はresource_formatで指定した形式で返されます。", "operationId": "speaker_info_speaker_info_get", "parameters": [ { @@ -2770,7 +2770,7 @@ }, "/speakers": { "get": { - "description": "話者情報の一覧を取得します。", + "description": "喋れるキャラクターの情報の一覧を返します。", "operationId": "speakers_speakers_get", "parameters": [ { diff --git a/test/e2e/__snapshots__/test_tts.ambr b/test/e2e/__snapshots__/test_tts.ambr index 492e474aa..091a376a5 100644 --- a/test/e2e/__snapshots__/test_tts.ambr +++ b/test/e2e/__snapshots__/test_tts.ambr @@ -1,4 +1,4 @@ # serializer version: 1 -# name: test_テキストと話者IDから音声を合成できる +# name: test_テキストとキャラクターIDから音声を合成できる 'MD5:8f7ddc461c68542d4d8ef4cd5c54ca82' # --- diff --git a/test/e2e/test_characters.py b/test/e2e/test_characters.py index 7c9bdd34d..3da7ec324 100644 --- a/test/e2e/test_characters.py +++ b/test/e2e/test_characters.py @@ -1,4 +1,4 @@ -"""話者・歌手のテスト""" +"""キャラクターのテスト""" import hashlib from test.utility import hash_long_string @@ -28,7 +28,7 @@ def _assert_resource_url( assert snapshot(name=name) == _hash_bytes(response.content) -def test_話者一覧が取得できる( +def test_喋れるキャラクター一覧が取得できる( client: TestClient, snapshot_json: SnapshotAssertion ) -> None: response = client.get("/speakers") @@ -36,7 +36,7 @@ def test_話者一覧が取得できる( assert snapshot_json == response.json() -def test_話者の情報を取得できる( +def test_喋れるキャラクターの情報を取得できる( client: TestClient, snapshot_json: SnapshotAssertion ) -> None: talkers = _speaker_list_adapter.validate_python(client.get("/speakers").json()) @@ -49,7 +49,7 @@ def test_話者の情報を取得できる( ) == hash_long_string(response.json()) -def test_話者の情報をURLで取得できる( +def test_喋れるキャラクターの情報をURLで取得できる( client: TestClient, snapshot_json: SnapshotAssertion, snapshot: SnapshotAssertion ) -> None: def assert_resource_url(url: str, name: str) -> None: @@ -77,7 +77,7 @@ def assert_resource_url(url: str, name: str) -> None: ) -def test_歌手一覧が取得できる( +def test_歌えるキャラクター一覧が取得できる( client: TestClient, snapshot_json: SnapshotAssertion ) -> None: response = client.get("/singers") @@ -85,7 +85,7 @@ def test_歌手一覧が取得できる( assert snapshot_json == response.json() -def test_歌手の情報を取得できる( +def test_歌えるキャラクターの情報を取得できる( client: TestClient, snapshot_json: SnapshotAssertion ) -> None: singers = _speaker_list_adapter.validate_python(client.get("/singers").json()) @@ -98,7 +98,7 @@ def test_歌手の情報を取得できる( ) == hash_long_string(response.json()) -def test_歌手の情報をURLで取得できる( +def test_歌えるキャラクターの情報をURLで取得できる( client: TestClient, snapshot_json: SnapshotAssertion, snapshot: SnapshotAssertion ) -> None: def assert_resource_url(url: str, name: str) -> None: diff --git a/test/e2e/test_tts.py b/test/e2e/test_tts.py index c8eb5daf0..66c8e60a5 100644 --- a/test/e2e/test_tts.py +++ b/test/e2e/test_tts.py @@ -8,10 +8,10 @@ from syrupy.assertion import SnapshotAssertion -def test_テキストと話者IDから音声を合成できる( +def test_テキストとキャラクターIDから音声を合成できる( client: TestClient, snapshot: SnapshotAssertion ) -> None: - # テキストと話者 ID から AudioQuery を生成する + # テキストとキャラクター ID から AudioQuery を生成する audio_query_res = client.post( "/audio_query", params={"text": "テストです", "speaker": 0} ) diff --git a/test/unit/test_metas_store.py b/test/unit/test_metas_store.py index 602b00c06..a9b7dcc43 100644 --- a/test/unit/test_metas_store.py +++ b/test/unit/test_metas_store.py @@ -59,7 +59,7 @@ def test_filter_characters_and_styles_with_talk() -> None: # Tests assert len(result) == 2 - # 話者だけになっている + # 喋れるキャラクターだけになっている assert _equal_characters(result, [talk_only, allstyle]) # スタイルがフィルタリングされている @@ -85,7 +85,7 @@ def test_filter_characters_and_styles_with_sing() -> None: # Tests assert len(result) == 4 - # 歌手だけになっている + # 歌えるキャラクターだけになっている assert _equal_characters( result, [singing_teacher_only, frame_decode_only, sing_only, allstyle] ) diff --git a/voicevox_engine/app/routers/character.py b/voicevox_engine/app/routers/character.py index 38e3c925a..41f02bdec 100644 --- a/voicevox_engine/app/routers/character.py +++ b/voicevox_engine/app/routers/character.py @@ -1,4 +1,4 @@ -"""話者情報機能を提供する API Router""" +"""キャラクター情報機能を提供する API Router""" from typing import Annotated @@ -39,12 +39,12 @@ def generate_character_router( resource_manager: ResourceManager, metas_store: MetasStore, ) -> APIRouter: - """話者情報 API Router を生成する""" + """キャラクター情報 API Router を生成する""" router = APIRouter(tags=["その他"]) @router.get("/speakers") def speakers(core_version: str | SkipJsonSchema[None] = None) -> list[Speaker]: - """話者情報の一覧を取得します。""" + """喋れるキャラクターの情報の一覧を返します。""" version = core_version or core_manager.latest_version() core = core_manager.get_core(version) characters = metas_store.talk_characters(core.characters) @@ -58,7 +58,7 @@ def speaker_info( core_version: str | SkipJsonSchema[None] = None, ) -> SpeakerInfo: """ - 指定されたspeaker_uuidの話者に関する情報をjson形式で返します。 + UUID で指定された喋れるキャラクターの情報を返します。 画像や音声はresource_formatで指定した形式で返されます。 """ version = core_version or core_manager.latest_version() @@ -73,7 +73,7 @@ def speaker_info( @router.get("/singers") def singers(core_version: str | SkipJsonSchema[None] = None) -> list[Speaker]: - """歌手情報の一覧を取得します""" + """歌えるキャラクターの情報の一覧を返します。""" version = core_version or core_manager.latest_version() core = core_manager.get_core(version) characters = metas_store.sing_characters(core.characters) @@ -87,7 +87,7 @@ def singer_info( core_version: str | SkipJsonSchema[None] = None, ) -> SpeakerInfo: """ - 指定されたspeaker_uuidの歌手に関する情報をjson形式で返します。 + UUID で指定された歌えるキャラクターの情報を返します。 画像や音声はresource_formatで指定した形式で返されます。 """ version = core_version or core_manager.latest_version() diff --git a/voicevox_engine/app/routers/morphing.py b/voicevox_engine/app/routers/morphing.py index 3ec5b2cd5..c717b44e4 100644 --- a/voicevox_engine/app/routers/morphing.py +++ b/voicevox_engine/app/routers/morphing.py @@ -43,13 +43,13 @@ def generate_morphing_router( @router.post( "/morphable_targets", - summary="指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する", + summary="指定したスタイルに対してエンジン内のキャラクターがモーフィングが可能か判定する", ) def morphable_targets( base_style_ids: list[StyleId], core_version: str | SkipJsonSchema[None] = None ) -> list[dict[str, MorphableTargetInfo]]: """ - 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 + 指定されたベーススタイルに対してエンジン内の各キャラクターがモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値のスタイルIDはstring型なので注意。 diff --git a/voicevox_engine/core/core_adapter.py b/voicevox_engine/core/core_adapter.py index ecf8264f3..7a2bf4d48 100644 --- a/voicevox_engine/core/core_adapter.py +++ b/voicevox_engine/core/core_adapter.py @@ -32,7 +32,7 @@ class CoreCharacter: name: str speaker_uuid: str styles: list[CoreCharacterStyle] - version: str # 話者のバージョン + version: str # キャラクターのバージョン _core_character_adapter = TypeAdapter(CoreCharacter) @@ -94,13 +94,13 @@ def initialize_style_id_synthesis( style_id : StyleId スタイルID skip_reinit : bool - True の場合, 既に初期化済みの話者の再初期化をスキップします + True の場合, 既に初期化済みのキャラクターの再初期化をスキップします """ try: with self.mutex: # 以下の条件のいずれかを満たす場合, 初期化を実行する # 1. 引数 skip_reinit が False の場合 - # 2. 話者が初期化されていない場合 + # 2. キャラクターが初期化されていない場合 if (not skip_reinit) or (not self.core.is_model_loaded(style_id)): self.core.load_model(style_id) except OldCoreError: diff --git a/voicevox_engine/library/model.py b/voicevox_engine/library/model.py index 8477a0e51..e931b507c 100644 --- a/voicevox_engine/library/model.py +++ b/voicevox_engine/library/model.py @@ -11,11 +11,11 @@ class LibrarySpeaker(BaseModel): """ - 音声ライブラリに含まれる話者の情報 + 音声ライブラリに含まれるキャラクターの情報 """ - speaker: Speaker = Field(description="話者情報") - speaker_info: SpeakerInfo = Field(description="話者の追加情報") + speaker: Speaker = Field(description="キャラクター情報") + speaker_info: SpeakerInfo = Field(description="キャラクターの追加情報") class BaseLibraryInfo(BaseModel): @@ -29,7 +29,7 @@ class BaseLibraryInfo(BaseModel): download_url: str = Field(description="音声ライブラリのダウンロードURL") bytes: int = Field(description="音声ライブラリのバイト数") speakers: list[LibrarySpeaker] = Field( - description="音声ライブラリに含まれる話者のリスト" + description="音声ライブラリに含まれるキャラクターのリスト" ) diff --git a/voicevox_engine/metas/Metas.py b/voicevox_engine/metas/Metas.py index 79898df1c..47a84d05a 100644 --- a/voicevox_engine/metas/Metas.py +++ b/voicevox_engine/metas/Metas.py @@ -1,4 +1,4 @@ -"""話者情報と話者メタ情報""" +"""キャラクター情報とキャラクターメタ情報""" from typing import Literal, NewType @@ -12,9 +12,7 @@ class SpeakerStyle(BaseModel): - """ - 話者のスタイル情報 - """ + """キャラクターのスタイル情報""" name: str = Field(description="スタイル名") id: StyleId = Field(description="スタイルID") @@ -31,37 +29,31 @@ class SpeakerStyle(BaseModel): class SpeakerSupportedFeatures(BaseModel): - """ - 話者の対応機能の情報 - """ + """キャラクターの対応機能の情報""" permitted_synthesis_morphing: Literal["ALL", "SELF_ONLY", "NOTHING"] = Field( description=( "モーフィング機能への対応。" - "'ALL' は「全て許可」、'SELF_ONLY' は「同じ話者内でのみ許可」、'NOTHING' は「全て禁止」" + "'ALL' は「全て許可」、'SELF_ONLY' は「同じキャラクター内でのみ許可」、'NOTHING' は「全て禁止」" ), default="ALL", ) class Speaker(BaseModel): - """ - 話者情報 - """ + """キャラクター情報""" name: str = Field(description="名前") - speaker_uuid: str = Field(description="話者のUUID") + speaker_uuid: str = Field(description="キャラクターのUUID") styles: list[SpeakerStyle] = Field(description="スタイルの一覧") - version: str = Field(description="話者のバージョン") + version: str = Field(description="キャラクターのバージョン") supported_features: SpeakerSupportedFeatures = Field( - description="話者の対応機能", default_factory=SpeakerSupportedFeatures + description="キャラクターの対応機能", default_factory=SpeakerSupportedFeatures ) class StyleInfo(BaseModel): - """ - スタイルの追加情報 - """ + """スタイルの追加情報""" id: StyleId = Field(description="スタイルID") icon: str = Field( @@ -77,9 +69,7 @@ class StyleInfo(BaseModel): class SpeakerInfo(BaseModel): - """ - 話者の追加情報 - """ + """キャラクターの追加情報""" policy: str = Field(description="policy.md") portrait: str = Field( diff --git a/voicevox_engine/metas/MetasStore.py b/voicevox_engine/metas/MetasStore.py index d276e6cc1..64f3df69a 100644 --- a/voicevox_engine/metas/MetasStore.py +++ b/voicevox_engine/metas/MetasStore.py @@ -1,4 +1,4 @@ -"""話者情報と話者メタ情報の管理""" +"""キャラクター情報とキャラクターメタ情報の管理""" from dataclasses import dataclass from pathlib import Path @@ -54,19 +54,12 @@ class _EngineCharacter(BaseModel): class MetasStore: - """ - 話者やスタイルのメタ情報を管理する - """ + """キャラクターやスタイルのメタ情報を管理する""" def __init__( self, engine_characters_path: Path, resource_manager: ResourceManager ) -> None: - """ - Parameters - ---------- - engine_characters_path : Path - エンジンに含まれる話者メタ情報ディレクトリのパス。 - """ + """エンジンに含まれるメタ情報へのパスを基にインスタンスを生成する。""" self._characters_path = engine_characters_path self._resource_manager = resource_manager # エンジンに含まれる各キャラクターのメタ情報 @@ -135,7 +128,7 @@ def character_info( # {character_uuid_1}/ # ... - # 該当話者を検索する + # 該当キャラクターを検索する characters = self.load_combined_metas(core_characters) characters = filter_characters_and_styles(characters, talk_or_sing) character = next( @@ -143,9 +136,10 @@ def character_info( ) if character is None: # FIXME: HTTPExceptionはこのファイルとドメインが合わないので辞める - raise HTTPException(status_code=404, detail="該当する話者が見つかりません") + msg = "該当するキャラクターが見つかりません" + raise HTTPException(status_code=404, detail=msg) - # 話者情報を取得する + # キャラクター情報を取得する try: character_path = self._characters_path / character_uuid diff --git a/voicevox_engine/morphing/model.py b/voicevox_engine/morphing/model.py index 09cc63103..e4c20e7bf 100644 --- a/voicevox_engine/morphing/model.py +++ b/voicevox_engine/morphing/model.py @@ -8,6 +8,8 @@ class MorphableTargetInfo(BaseModel): - is_morphable: bool = Field(description="指定した話者に対してモーフィングの可否") + is_morphable: bool = Field( + description="指定したキャラクターに対してモーフィングの可否" + ) # FIXME: add reason property # reason: str | None = Field(description="is_morphableがfalseである場合、その理由") diff --git a/voicevox_engine/morphing/morphing.py b/voicevox_engine/morphing/morphing.py index 81721254c..f643cb23e 100644 --- a/voicevox_engine/morphing/morphing.py +++ b/voicevox_engine/morphing/morphing.py @@ -88,7 +88,7 @@ def is_morphable( return False elif morphable_2 == "NOTHING": return False - # 同一話者のみの場合は同一話者判定 + # 同一キャラクターのみの場合は同一キャラクター判定 elif morphable_1 == "SELF_ONLY": return uuid_1 == uuid_2 elif morphable_2 == "SELF_ONLY": diff --git a/voicevox_engine/preset/model.py b/voicevox_engine/preset/model.py index 01f4b66f0..0239359c5 100644 --- a/voicevox_engine/preset/model.py +++ b/voicevox_engine/preset/model.py @@ -17,7 +17,7 @@ class Preset(BaseModel): id: int = Field(description="プリセットID") name: str = Field(description="プリセット名") - speaker_uuid: str = Field(description="話者のUUID") + speaker_uuid: str = Field(description="キャラクターのUUID") style_id: StyleId = Field(description="スタイルID") speedScale: float = Field(description="全体の話速") pitchScale: float = Field(description="全体の音高")