From 35482b0ee7d537cdca404eae32bc025989756389 Mon Sep 17 00:00:00 2001 From: Hiroshiba Kazuyuki Date: Mon, 20 Sep 2021 20:56:30 +0900 Subject: [PATCH 1/5] update openapi --- openapi.json | 2 +- src/openapi/.openapi-generator/FILES | 1 + src/openapi/apis/DefaultApi.ts | 202 +++++++++++++++++++++- src/openapi/models/AccentPhrase.ts | 2 +- src/openapi/models/AudioQuery.ts | 10 +- src/openapi/models/HTTPValidationError.ts | 2 +- src/openapi/models/Mora.ts | 2 +- src/openapi/models/ParseKanaBadRequest.ts | 80 +++++++++ src/openapi/models/Speaker.ts | 2 +- src/openapi/models/ValidationError.ts | 2 +- src/openapi/models/index.ts | 1 + src/openapi/runtime.ts | 2 +- 12 files changed, 298 insertions(+), 10 deletions(-) create mode 100644 src/openapi/models/ParseKanaBadRequest.ts diff --git a/openapi.json b/openapi.json index 0d88981fd4..29269dfe52 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.2","info":{"title":"VOICEVOX ENGINE","description":"VOICEVOXの音声合成エンジンです。","version":"0.5.0"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/accent_phrases":{"post":{"tags":["クエリ編集"],"summary":"テキストからアクセント句を得る","operationId":"accent_phrases_accent_phrases_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_data":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高・音素長を得る","operationId":"mora_data_mora_data_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"}},"description":"音声合成用のクエリ"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"Speaker":{"title":"Speaker","required":["name","speaker_id"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_id":{"title":"スピーカーID","type":"integer"}},"description":"スピーカー情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}}}}} \ No newline at end of file +{"openapi":"3.0.2","info":{"title":"VOICEVOX ENGINE","description":"VOICEVOXの音声合成エンジンです。","version":"0.6.0"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/accent_phrases":{"post":{"tags":["クエリ編集"],"summary":"テキストからアクセント句を得る","description":"テキストからアクセント句を得ます。\nis_kanaが`true`のとき、テキストは次のようなAquesTalkライクな記法に従う読み仮名として処理されます。デフォルトは`false`です。\n* 全てのカナはカタカナで記述される\n* アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。\n* カナの手前に`_`を入れるとそのカナは無声化される\n* アクセント位置を`'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。","operationId":"accent_phrases_accent_phrases_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"400":{"description":"読み仮名のパースに失敗","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseKanaBadRequest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_data":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高・音素長を得る","operationId":"mora_data_mora_data_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_length":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音素長を得る","operationId":"mora_length_mora_length_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_pitch":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高を得る","operationId":"mora_pitch_mora_pitch_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/multi_synthesis":{"post":{"tags":["音声合成"],"summary":"複数まとめて音声合成する","operationId":"multi_synthesis_multi_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","description":"|name|description|\n|---|---|\n| UNKNOWN_TEXT | 判別できない読み仮名があります: {text} |\n| ACCENT_TOP | 句頭にアクセントは置けません: {text} |\n| ACCENT_TWICE | 1つのアクセント句に二つ以上のアクセントは置けません: {text} |\n| ACCENT_NOTFOUND | アクセントを指定していないアクセント句があります: {text} |\n| EMPTY_PHRASE | {position}番目のアクセント句が空白です |\n| INFINITE_LOOP | 処理時に無限ループになってしまいました...バグ報告をお願いします。 |"},"error_args":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Speaker":{"title":"Speaker","required":["name","speaker_id"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_id":{"title":"スピーカーID","type":"integer"}},"description":"スピーカー情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}}}}} \ No newline at end of file diff --git a/src/openapi/.openapi-generator/FILES b/src/openapi/.openapi-generator/FILES index cd8e20c376..55ce60bd4a 100644 --- a/src/openapi/.openapi-generator/FILES +++ b/src/openapi/.openapi-generator/FILES @@ -5,6 +5,7 @@ models/AccentPhrase.ts models/AudioQuery.ts models/HTTPValidationError.ts models/Mora.ts +models/ParseKanaBadRequest.ts models/Speaker.ts models/ValidationError.ts models/index.ts diff --git a/src/openapi/apis/DefaultApi.ts b/src/openapi/apis/DefaultApi.ts index c57582408f..8977128565 100644 --- a/src/openapi/apis/DefaultApi.ts +++ b/src/openapi/apis/DefaultApi.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -24,6 +24,9 @@ import { HTTPValidationError, HTTPValidationErrorFromJSON, HTTPValidationErrorToJSON, + ParseKanaBadRequest, + ParseKanaBadRequestFromJSON, + ParseKanaBadRequestToJSON, Speaker, SpeakerFromJSON, SpeakerToJSON, @@ -32,6 +35,7 @@ import { export interface AccentPhrasesAccentPhrasesPostRequest { text: string; speaker: number; + isKana?: boolean; } export interface AudioQueryAudioQueryPostRequest { @@ -44,6 +48,21 @@ export interface MoraDataMoraDataPostRequest { accentPhrase: Array; } +export interface MoraLengthMoraLengthPostRequest { + speaker: number; + accentPhrase: Array; +} + +export interface MoraPitchMoraPitchPostRequest { + speaker: number; + accentPhrase: Array; +} + +export interface MultiSynthesisMultiSynthesisPostRequest { + speaker: number; + audioQuery: Array; +} + export interface SynthesisSynthesisPostRequest { speaker: number; audioQuery: AudioQuery; @@ -57,10 +76,11 @@ export interface SynthesisSynthesisPostRequest { */ export interface DefaultApiInterface { /** - * + * テキストからアクセント句を得ます。 is_kanaが`true`のとき、テキストは次のようなAquesTalkライクな記法に従う読み仮名として処理されます。デフォルトは`false`です。 * 全てのカナはカタカナで記述される * アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。 * カナの手前に`_`を入れるとそのカナは無声化される * アクセント位置を`\'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。 * @summary テキストからアクセント句を得る * @param {string} text * @param {number} speaker + * @param {boolean} [isKana] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -68,6 +88,7 @@ export interface DefaultApiInterface { accentPhrasesAccentPhrasesPostRaw(requestParameters: AccentPhrasesAccentPhrasesPostRequest): Promise>>; /** + * テキストからアクセント句を得ます。 is_kanaが`true`のとき、テキストは次のようなAquesTalkライクな記法に従う読み仮名として処理されます。デフォルトは`false`です。 * 全てのカナはカタカナで記述される * アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。 * カナの手前に`_`を入れるとそのカナは無声化される * アクセント位置を`\'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。 * テキストからアクセント句を得る */ accentPhrasesAccentPhrasesPost(requestParameters: AccentPhrasesAccentPhrasesPostRequest): Promise>; @@ -105,6 +126,54 @@ export interface DefaultApiInterface { */ moraDataMoraDataPost(requestParameters: MoraDataMoraDataPostRequest): Promise>; + /** + * + * @summary アクセント句から音素長を得る + * @param {number} speaker + * @param {Array} accentPhrase + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + moraLengthMoraLengthPostRaw(requestParameters: MoraLengthMoraLengthPostRequest): Promise>>; + + /** + * アクセント句から音素長を得る + */ + moraLengthMoraLengthPost(requestParameters: MoraLengthMoraLengthPostRequest): Promise>; + + /** + * + * @summary アクセント句から音高を得る + * @param {number} speaker + * @param {Array} accentPhrase + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + moraPitchMoraPitchPostRaw(requestParameters: MoraPitchMoraPitchPostRequest): Promise>>; + + /** + * アクセント句から音高を得る + */ + moraPitchMoraPitchPost(requestParameters: MoraPitchMoraPitchPostRequest): Promise>; + + /** + * + * @summary 複数まとめて音声合成する + * @param {number} speaker + * @param {Array} audioQuery + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + multiSynthesisMultiSynthesisPostRaw(requestParameters: MultiSynthesisMultiSynthesisPostRequest): Promise>; + + /** + * 複数まとめて音声合成する + */ + multiSynthesisMultiSynthesisPost(requestParameters: MultiSynthesisMultiSynthesisPostRequest): Promise; + /** * * @summary Speakers @@ -157,6 +226,7 @@ export interface DefaultApiInterface { export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { /** + * テキストからアクセント句を得ます。 is_kanaが`true`のとき、テキストは次のようなAquesTalkライクな記法に従う読み仮名として処理されます。デフォルトは`false`です。 * 全てのカナはカタカナで記述される * アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。 * カナの手前に`_`を入れるとそのカナは無声化される * アクセント位置を`\'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。 * テキストからアクセント句を得る */ async accentPhrasesAccentPhrasesPostRaw(requestParameters: AccentPhrasesAccentPhrasesPostRequest): Promise>> { @@ -178,6 +248,10 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { queryParameters['speaker'] = requestParameters.speaker; } + if (requestParameters.isKana !== undefined) { + queryParameters['is_kana'] = requestParameters.isKana; + } + const headerParameters: runtime.HTTPHeaders = {}; const response = await this.request({ @@ -191,6 +265,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** + * テキストからアクセント句を得ます。 is_kanaが`true`のとき、テキストは次のようなAquesTalkライクな記法に従う読み仮名として処理されます。デフォルトは`false`です。 * 全てのカナはカタカナで記述される * アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。 * カナの手前に`_`を入れるとそのカナは無声化される * アクセント位置を`\'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。 * テキストからアクセント句を得る */ async accentPhrasesAccentPhrasesPost(requestParameters: AccentPhrasesAccentPhrasesPostRequest): Promise> { @@ -283,6 +358,129 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } + /** + * アクセント句から音素長を得る + */ + async moraLengthMoraLengthPostRaw(requestParameters: MoraLengthMoraLengthPostRequest): Promise>> { + if (requestParameters.speaker === null || requestParameters.speaker === undefined) { + throw new runtime.RequiredError('speaker','Required parameter requestParameters.speaker was null or undefined when calling moraLengthMoraLengthPost.'); + } + + if (requestParameters.accentPhrase === null || requestParameters.accentPhrase === undefined) { + throw new runtime.RequiredError('accentPhrase','Required parameter requestParameters.accentPhrase was null or undefined when calling moraLengthMoraLengthPost.'); + } + + const queryParameters: any = {}; + + if (requestParameters.speaker !== undefined) { + queryParameters['speaker'] = requestParameters.speaker; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + const response = await this.request({ + path: `/mora_length`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: requestParameters.accentPhrase.map(AccentPhraseToJSON), + }); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(AccentPhraseFromJSON)); + } + + /** + * アクセント句から音素長を得る + */ + async moraLengthMoraLengthPost(requestParameters: MoraLengthMoraLengthPostRequest): Promise> { + const response = await this.moraLengthMoraLengthPostRaw(requestParameters); + return await response.value(); + } + + /** + * アクセント句から音高を得る + */ + async moraPitchMoraPitchPostRaw(requestParameters: MoraPitchMoraPitchPostRequest): Promise>> { + if (requestParameters.speaker === null || requestParameters.speaker === undefined) { + throw new runtime.RequiredError('speaker','Required parameter requestParameters.speaker was null or undefined when calling moraPitchMoraPitchPost.'); + } + + if (requestParameters.accentPhrase === null || requestParameters.accentPhrase === undefined) { + throw new runtime.RequiredError('accentPhrase','Required parameter requestParameters.accentPhrase was null or undefined when calling moraPitchMoraPitchPost.'); + } + + const queryParameters: any = {}; + + if (requestParameters.speaker !== undefined) { + queryParameters['speaker'] = requestParameters.speaker; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + const response = await this.request({ + path: `/mora_pitch`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: requestParameters.accentPhrase.map(AccentPhraseToJSON), + }); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(AccentPhraseFromJSON)); + } + + /** + * アクセント句から音高を得る + */ + async moraPitchMoraPitchPost(requestParameters: MoraPitchMoraPitchPostRequest): Promise> { + const response = await this.moraPitchMoraPitchPostRaw(requestParameters); + return await response.value(); + } + + /** + * 複数まとめて音声合成する + */ + async multiSynthesisMultiSynthesisPostRaw(requestParameters: MultiSynthesisMultiSynthesisPostRequest): Promise> { + if (requestParameters.speaker === null || requestParameters.speaker === undefined) { + throw new runtime.RequiredError('speaker','Required parameter requestParameters.speaker was null or undefined when calling multiSynthesisMultiSynthesisPost.'); + } + + if (requestParameters.audioQuery === null || requestParameters.audioQuery === undefined) { + throw new runtime.RequiredError('audioQuery','Required parameter requestParameters.audioQuery was null or undefined when calling multiSynthesisMultiSynthesisPost.'); + } + + const queryParameters: any = {}; + + if (requestParameters.speaker !== undefined) { + queryParameters['speaker'] = requestParameters.speaker; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + const response = await this.request({ + path: `/multi_synthesis`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: requestParameters.audioQuery.map(AudioQueryToJSON), + }); + + return new runtime.BlobApiResponse(response); + } + + /** + * 複数まとめて音声合成する + */ + async multiSynthesisMultiSynthesisPost(requestParameters: MultiSynthesisMultiSynthesisPostRequest): Promise { + const response = await this.multiSynthesisMultiSynthesisPostRaw(requestParameters); + return await response.value(); + } + /** * Speakers */ diff --git a/src/openapi/models/AccentPhrase.ts b/src/openapi/models/AccentPhrase.ts index 339431248c..39bc789cdc 100644 --- a/src/openapi/models/AccentPhrase.ts +++ b/src/openapi/models/AccentPhrase.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/AudioQuery.ts b/src/openapi/models/AudioQuery.ts index c04d84236d..59e0ef2605 100644 --- a/src/openapi/models/AudioQuery.ts +++ b/src/openapi/models/AudioQuery.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -80,6 +80,12 @@ export interface AudioQuery { * @memberof AudioQuery */ outputStereo: boolean; + /** + * + * @type {string} + * @memberof AudioQuery + */ + kana?: string; } export function AudioQueryFromJSON(json: any): AudioQuery { @@ -101,6 +107,7 @@ export function AudioQueryFromJSONTyped(json: any, ignoreDiscriminator: boolean) 'postPhonemeLength': json['postPhonemeLength'], 'outputSamplingRate': json['outputSamplingRate'], 'outputStereo': json['outputStereo'], + 'kana': !exists(json, 'kana') ? undefined : json['kana'], }; } @@ -122,6 +129,7 @@ export function AudioQueryToJSON(value?: AudioQuery | null): any { 'postPhonemeLength': value.postPhonemeLength, 'outputSamplingRate': value.outputSamplingRate, 'outputStereo': value.outputStereo, + 'kana': value.kana, }; } diff --git a/src/openapi/models/HTTPValidationError.ts b/src/openapi/models/HTTPValidationError.ts index a2e6281279..5c4e96947a 100644 --- a/src/openapi/models/HTTPValidationError.ts +++ b/src/openapi/models/HTTPValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Mora.ts b/src/openapi/models/Mora.ts index 80f8eb187c..01d9829efb 100644 --- a/src/openapi/models/Mora.ts +++ b/src/openapi/models/Mora.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ParseKanaBadRequest.ts b/src/openapi/models/ParseKanaBadRequest.ts new file mode 100644 index 0000000000..c8acae9833 --- /dev/null +++ b/src/openapi/models/ParseKanaBadRequest.ts @@ -0,0 +1,80 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX ENGINE + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: 0.6.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ParseKanaBadRequest + */ +export interface ParseKanaBadRequest { + /** + * + * @type {string} + * @memberof ParseKanaBadRequest + */ + text: string; + /** + * |name|description| +|---|---| +| UNKNOWN_TEXT | 判別できない読み仮名があります: {text} | +| ACCENT_TOP | 句頭にアクセントは置けません: {text} | +| ACCENT_TWICE | 1つのアクセント句に二つ以上のアクセントは置けません: {text} | +| ACCENT_NOTFOUND | アクセントを指定していないアクセント句があります: {text} | +| EMPTY_PHRASE | {position}番目のアクセント句が空白です | +| INFINITE_LOOP | 処理時に無限ループになってしまいました...バグ報告をお願いします。 | + * @type {string} + * @memberof ParseKanaBadRequest + */ + errorName: string; + /** + * + * @type {{ [key: string]: string; }} + * @memberof ParseKanaBadRequest + */ + errorArgs: { [key: string]: string; }; +} + +export function ParseKanaBadRequestFromJSON(json: any): ParseKanaBadRequest { + return ParseKanaBadRequestFromJSONTyped(json, false); +} + +export function ParseKanaBadRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): ParseKanaBadRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'text': json['text'], + 'errorName': json['error_name'], + 'errorArgs': json['error_args'], + }; +} + +export function ParseKanaBadRequestToJSON(value?: ParseKanaBadRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'text': value.text, + 'error_name': value.errorName, + 'error_args': value.errorArgs, + }; +} + + diff --git a/src/openapi/models/Speaker.ts b/src/openapi/models/Speaker.ts index 1091702144..f7957a0787 100644 --- a/src/openapi/models/Speaker.ts +++ b/src/openapi/models/Speaker.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ValidationError.ts b/src/openapi/models/ValidationError.ts index 7b6b949cb0..498cc48f3c 100644 --- a/src/openapi/models/ValidationError.ts +++ b/src/openapi/models/ValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/index.ts b/src/openapi/models/index.ts index 81ad7a8991..5fa0d1d53e 100644 --- a/src/openapi/models/index.ts +++ b/src/openapi/models/index.ts @@ -2,5 +2,6 @@ export * from "./AccentPhrase"; export * from "./AudioQuery"; export * from "./HTTPValidationError"; export * from "./Mora"; +export * from "./ParseKanaBadRequest"; export * from "./Speaker"; export * from "./ValidationError"; diff --git a/src/openapi/runtime.ts b/src/openapi/runtime.ts index 0508046a86..82ba61e00e 100644 --- a/src/openapi/runtime.ts +++ b/src/openapi/runtime.ts @@ -4,7 +4,7 @@ * VOICEVOX ENGINE * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.5.0 + * The version of the OpenAPI document: 0.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From b4cd3976edaf9a1e12e036703ed3f1ec5e12cad7 Mon Sep 17 00:00:00 2001 From: Hiroshiba Kazuyuki Date: Mon, 20 Sep 2021 21:21:39 +0900 Subject: [PATCH 2/5] update updateInfos.json --- public/updateInfos.json | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/public/updateInfos.json b/public/updateInfos.json index 58b6b4df55..19beb8a90b 100644 --- a/public/updateInfos.json +++ b/public/updateInfos.json @@ -1,4 +1,35 @@ [ + { + "version": "0.6.0", + "descriptions": [ + "音声書き出し先を固定する機能を追加", + "前後の無音の長さ調整機能を追加", + "アクセント変更時に影響のないイントネーションを固定", + "読みを修正できる機能を追加", + "インストーラのUX向上", + "音声合成時のメモリ使用量の削減", + "コアライブラリの機能追加", + "音声合成エンジンの機能追加", + "開発環境の向上" + ], + "contributors": [ + "aoirint", + "buckw6eat", + "eggplants", + "Hiroshiba", + "HyodaKazuaki", + "isnot", + "k-kuroguro", + "MT224244", + "oov", + "Patchethium", + "Segu-g", + "takana-v", + "tantan-tanuki", + "y-chan", + "Yosshi999" + ] + }, { "version": "0.5.3", "descriptions": [ From ff2ee176bc9c70f60c3311718504a4ca67ca5ed7 Mon Sep 17 00:00:00 2001 From: Hiroshiba Kazuyuki Date: Mon, 20 Sep 2021 21:25:44 +0900 Subject: [PATCH 3/5] update htu --- src/components/HowToUse.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/HowToUse.vue b/src/components/HowToUse.vue index 865769bc32..4bf87e4603 100644 --- a/src/components/HowToUse.vue +++ b/src/components/HowToUse.vue @@ -11,7 +11,7 @@

ソフトウェアの使い方は以下をご参照ください。

使い方 From 3a7f90ea567ca897c7c4798b4af56cff488fee97 Mon Sep 17 00:00:00 2001 From: Hiroshiba Kazuyuki Date: Mon, 20 Sep 2021 23:45:30 +0900 Subject: [PATCH 4/5] update design --- src/components/AudioAccent.vue | 2 +- src/components/AudioDetail.vue | 8 ++- src/components/AudioInfo.vue | 27 +++++---- src/components/HelpDialog.vue | 9 ++- src/components/SettingDialog.vue | 99 ++++++++++---------------------- src/views/Home.vue | 2 +- 6 files changed, 57 insertions(+), 90 deletions(-) diff --git a/src/components/AudioAccent.vue b/src/components/AudioAccent.vue index c2955b5fe9..609c6b36a6 100644 --- a/src/components/AudioAccent.vue +++ b/src/components/AudioAccent.vue @@ -62,7 +62,7 @@