Skip to content

Commit

Permalink
InvalidStyleId, InvalidModelId, UnknownWord…NotFoundにする (#622)
Browse files Browse the repository at this point in the history
Co-authored-by: Nanashi. <[email protected]>
  • Loading branch information
qryxip and sevenc-nanashi authored Sep 24, 2023
1 parent 302d6b9 commit 38effe9
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 40 deletions.
32 changes: 19 additions & 13 deletions crates/voicevox_core/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ impl Error {
},
ErrorRepr::UnloadedModel { .. } => ErrorKind::UnloadedModel,
ErrorRepr::GetSupportedDevices(_) => ErrorKind::GetSupportedDevices,
ErrorRepr::InvalidStyleId { .. } => ErrorKind::InvalidStyleId,
ErrorRepr::InvalidModelId { .. } => ErrorKind::InvalidModelId,
ErrorRepr::StyleNotFound { .. } => ErrorKind::StyleNotFound,
ErrorRepr::ModelNotFound { .. } => ErrorKind::ModelNotFound,
ErrorRepr::InferenceFailed => ErrorKind::InferenceFailed,
ErrorRepr::ExtractFullContextLabel(_) => ErrorKind::ExtractFullContextLabel,
ErrorRepr::ParseKana(_) => ErrorKind::ParseKana,
ErrorRepr::LoadUserDict(_) => ErrorKind::LoadUserDict,
ErrorRepr::SaveUserDict(_) => ErrorKind::SaveUserDict,
ErrorRepr::UnknownWord(_) => ErrorKind::UnknownWord,
ErrorRepr::WordNotFound(_) => ErrorKind::WordNotFound,
ErrorRepr::UseUserDict(_) => ErrorKind::UseUserDict,
ErrorRepr::InvalidWord(_) => ErrorKind::InvalidWord,
}
Expand All @@ -76,12 +76,18 @@ pub(crate) enum ErrorRepr {
#[error("サポートされているデバイス情報取得中にエラーが発生しました,{0}")]
GetSupportedDevices(#[source] anyhow::Error),

#[error("無効なspeaker_idです: {style_id:?}")]
InvalidStyleId { style_id: StyleId },
#[error(
"`{style_id}`に対するスタイルが見つかりませんでした。音声モデルが読み込まれていないか、読\
み込みが解除されています"
)]
StyleNotFound { style_id: StyleId },

#[allow(dead_code)] // FIXME
#[error("無効なmodel_idです: {model_id:?}")]
InvalidModelId { model_id: VoiceModelId },
#[error(
"`{model_id}`に対する音声モデルが見つかりませんでした。読み込まれていないか、読み込みが既\
に解除されています"
)]
ModelNotFound { model_id: VoiceModelId },

#[error("推論に失敗しました")]
InferenceFailed,
Expand All @@ -99,7 +105,7 @@ pub(crate) enum ErrorRepr {
SaveUserDict(String),

#[error("ユーザー辞書に単語が見つかりませんでした: {0}")]
UnknownWord(Uuid),
WordNotFound(Uuid),

#[error("OpenJTalkのユーザー辞書の設定に失敗しました: {0}")]
UseUserDict(String),
Expand Down Expand Up @@ -129,10 +135,10 @@ pub enum ErrorKind {
UnloadedModel,
/// サポートされているデバイス情報取得に失敗した。
GetSupportedDevices,
/// 無効なstyle_idが指定された
InvalidStyleId,
/// 無効なmodel_idが指定された
InvalidModelId,
/// スタイルIDに対するスタイルが見つからなかった
StyleNotFound,
/// 音声モデルIDに対する音声モデルが見つからなかった
ModelNotFound,
/// 推論に失敗した。
InferenceFailed,
/// コンテキストラベル出力に失敗した。
Expand All @@ -144,7 +150,7 @@ pub enum ErrorKind {
/// ユーザー辞書を書き込めなかった。
SaveUserDict,
/// ユーザー辞書に単語が見つからなかった。
UnknownWord,
WordNotFound,
/// OpenJTalkのユーザー辞書の設定に失敗した。
UseUserDict,
/// ユーザー辞書の単語のバリデーションに失敗した。
Expand Down
6 changes: 3 additions & 3 deletions crates/voicevox_core/src/inference_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ impl InferenceCore {
style_id: StyleId,
) -> Result<Vec<f32>> {
if !self.status.validate_speaker_id(style_id) {
return Err(ErrorRepr::InvalidStyleId { style_id }.into());
return Err(ErrorRepr::StyleNotFound { style_id }.into());
}

let (model_id, model_inner_id) = self.status.ids_for(style_id)?;
Expand Down Expand Up @@ -90,7 +90,7 @@ impl InferenceCore {
style_id: StyleId,
) -> Result<Vec<f32>> {
if !self.status.validate_speaker_id(style_id) {
return Err(ErrorRepr::InvalidStyleId { style_id }.into());
return Err(ErrorRepr::StyleNotFound { style_id }.into());
}

let (model_id, model_inner_id) = self.status.ids_for(style_id)?;
Expand Down Expand Up @@ -129,7 +129,7 @@ impl InferenceCore {
style_id: StyleId,
) -> Result<Vec<f32>> {
if !self.status.validate_speaker_id(style_id) {
return Err(ErrorRepr::InvalidStyleId { style_id }.into());
return Err(ErrorRepr::StyleNotFound { style_id }.into());
}

let (model_id, model_inner_id) = self.status.ids_for(style_id)?;
Expand Down
2 changes: 1 addition & 1 deletion crates/voicevox_core/src/status.rs
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ impl LoadedModels {
.flat_map(SpeakerMeta::styles)
.any(|style| *style.id() == style_id)
})
.ok_or(ErrorRepr::InvalidStyleId { style_id })?;
.ok_or(ErrorRepr::StyleNotFound { style_id })?;

let model_inner_id = *model_inner_ids
.get(&style_id)
Expand Down
4 changes: 2 additions & 2 deletions crates/voicevox_core/src/user_dict/dict.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ impl UserDict {
/// ユーザー辞書の単語を変更する。
pub fn update_word(&mut self, word_uuid: Uuid, new_word: UserDictWord) -> Result<()> {
if !self.words.contains_key(&word_uuid) {
return Err(ErrorRepr::UnknownWord(word_uuid).into());
return Err(ErrorRepr::WordNotFound(word_uuid).into());
}
self.words.insert(word_uuid, new_word);
Ok(())
Expand All @@ -57,7 +57,7 @@ impl UserDict {
/// ユーザー辞書から単語を削除する。
pub fn remove_word(&mut self, word_uuid: Uuid) -> Result<UserDictWord> {
let Some(word) = self.words.remove(&word_uuid) else {
return Err(ErrorRepr::UnknownWord(word_uuid).into());
return Err(ErrorRepr::WordNotFound(word_uuid).into());
};
Ok(word)
}
Expand Down
10 changes: 5 additions & 5 deletions crates/voicevox_core_c_api/include/voicevox_core.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions crates/voicevox_core_c_api/src/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ pub(crate) fn into_result_code_with_error(result: CApiResult<()>) -> VoicevoxRes
InvalidModelData => VOICEVOX_RESULT_INVALID_MODEL_DATA_ERROR,
UnloadedModel => VOICEVOX_RESULT_UNLOADED_MODEL_ERROR,
GetSupportedDevices => VOICEVOX_RESULT_GET_SUPPORTED_DEVICES_ERROR,
InvalidStyleId => VOICEVOX_RESULT_INVALID_STYLE_ID_ERROR,
InvalidModelId => VOICEVOX_RESULT_INVALID_MODEL_ID_ERROR,
StyleNotFound => VOICEVOX_RESULT_STYLE_NOT_FOUND_ERROR,
ModelNotFound => VOICEVOX_RESULT_MODEL_NOT_FOUND_ERROR,
InferenceFailed => VOICEVOX_RESULT_INFERENCE_ERROR,
ExtractFullContextLabel => VOICEVOX_RESULT_EXTRACT_FULL_CONTEXT_LABEL_ERROR,
ParseKana => VOICEVOX_RESULT_PARSE_KANA_ERROR,
LoadUserDict => VOICEVOX_RESULT_LOAD_USER_DICT_ERROR,
SaveUserDict => VOICEVOX_RESULT_SAVE_USER_DICT_ERROR,
UnknownWord => VOICEVOX_RESULT_UNKNOWN_USER_DICT_WORD_ERROR,
WordNotFound => VOICEVOX_RESULT_USER_DICT_WORD_NOT_FOUND_ERROR,
UseUserDict => VOICEVOX_RESULT_USE_USER_DICT_ERROR,
InvalidWord => VOICEVOX_RESULT_INVALID_USER_DICT_WORD_ERROR,
},
Expand Down
22 changes: 14 additions & 8 deletions crates/voicevox_core_c_api/src/result_code.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ pub enum VoicevoxResultCode {
VOICEVOX_RESULT_GET_SUPPORTED_DEVICES_ERROR = 3,
/// GPUモードがサポートされていない
VOICEVOX_RESULT_GPU_SUPPORT_ERROR = 4,
/// 無効なstyle_idが指定された
VOICEVOX_RESULT_INVALID_STYLE_ID_ERROR = 6,
/// 無効なmodel_idが指定された
VOICEVOX_RESULT_INVALID_MODEL_ID_ERROR = 7,
/// スタイルIDに対するスタイルが見つからなかった
VOICEVOX_RESULT_STYLE_NOT_FOUND_ERROR = 6,
/// 音声モデルIDに対する音声モデルが見つからなかった
VOICEVOX_RESULT_MODEL_NOT_FOUND_ERROR = 7,
/// 推論に失敗した
VOICEVOX_RESULT_INFERENCE_ERROR = 8,
/// コンテキストラベル出力に失敗した
Expand Down Expand Up @@ -50,7 +50,7 @@ pub enum VoicevoxResultCode {
/// ユーザー辞書を書き込めなかった
VOICEVOX_RESULT_SAVE_USER_DICT_ERROR = 21,
/// ユーザー辞書に単語が見つからなかった
VOICEVOX_RESULT_UNKNOWN_USER_DICT_WORD_ERROR = 22,
VOICEVOX_RESULT_USER_DICT_WORD_NOT_FOUND_ERROR = 22,
/// OpenJTalkのユーザー辞書の設定に失敗した
VOICEVOX_RESULT_USE_USER_DICT_ERROR = 23,
/// ユーザー辞書の単語のバリデーションに失敗した
Expand All @@ -70,8 +70,14 @@ pub(crate) const fn error_result_to_message(result_code: VoicevoxResultCode) ->
cstr!("サポートされているデバイス情報取得中にエラーが発生しました")
}
VOICEVOX_RESULT_OK => cstr!("エラーが発生しませんでした"),
VOICEVOX_RESULT_INVALID_STYLE_ID_ERROR => cstr!("無効なspeaker_idです"),
VOICEVOX_RESULT_INVALID_MODEL_ID_ERROR => cstr!("無効なmodel_idです"),
VOICEVOX_RESULT_STYLE_NOT_FOUND_ERROR => cstr!(
"指定されたIDに対するスタイルが見つかりませんでした。音声モデルが読み込まれていないか\
、読み込みが解除されています"
),
VOICEVOX_RESULT_MODEL_NOT_FOUND_ERROR => cstr!(
"指定されたIDに対する音声モデルが見つかりませんでした。読み込まれていないか、読み込み\
が既に解除されています"
),
VOICEVOX_RESULT_INFERENCE_ERROR => cstr!("推論に失敗しました"),
VOICEVOX_RESULT_EXTRACT_FULL_CONTEXT_LABEL_ERROR => {
cstr!("入力テキストからのフルコンテキストラベル抽出に失敗しました")
Expand All @@ -96,7 +102,7 @@ pub(crate) const fn error_result_to_message(result_code: VoicevoxResultCode) ->
VOICEVOX_RESULT_UNLOADED_MODEL_ERROR => cstr!("Modelが読み込まれていません"),
VOICEVOX_RESULT_LOAD_USER_DICT_ERROR => cstr!("ユーザー辞書を読み込めませんでした"),
VOICEVOX_RESULT_SAVE_USER_DICT_ERROR => cstr!("ユーザー辞書を書き込めませんでした"),
VOICEVOX_RESULT_UNKNOWN_USER_DICT_WORD_ERROR => {
VOICEVOX_RESULT_USER_DICT_WORD_NOT_FOUND_ERROR => {
cstr!("ユーザー辞書に単語が見つかりませんでした")
}
VOICEVOX_RESULT_USE_USER_DICT_ERROR => cstr!("OpenJTalkのユーザー辞書の設定に失敗しました"),
Expand Down
4 changes: 2 additions & 2 deletions crates/voicevox_core_c_api/tests/e2e/snapshots.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ result_messages.0 = "エラーが発生しませんでした"
result_messages.1 = "OpenJTalkの辞書が読み込まれていません"
result_messages.3 = "サポートされているデバイス情報取得中にエラーが発生しました"
result_messages.4 = "GPU機能をサポートすることができません"
result_messages.6 = "無効なspeaker_idです"
result_messages.7 = "無効なmodel_idです"
result_messages.6 = "指定されたIDに対するスタイルが見つかりませんでした。音声モデルが読み込まれていないか、読み込みが解除されています"
result_messages.7 = "指定されたIDに対する音声モデルが見つかりませんでした。読み込まれていないか、読み込みが既に解除されています"
result_messages.8 = "推論に失敗しました"
result_messages.11 = "入力テキストからのフルコンテキストラベル抽出に失敗しました"
result_messages.12 = "入力テキストが無効なUTF-8データでした"
Expand Down
6 changes: 3 additions & 3 deletions crates/voicevox_core_c_api/tests/e2e/symbols.rs
Original file line number Diff line number Diff line change
Expand Up @@ -270,8 +270,8 @@ pub(crate) enum VoicevoxResultCode {
VOICEVOX_RESULT_NOT_LOADED_OPENJTALK_DICT_ERROR = 1,
VOICEVOX_RESULT_GET_SUPPORTED_DEVICES_ERROR = 3,
VOICEVOX_RESULT_GPU_SUPPORT_ERROR = 4,
VOICEVOX_RESULT_INVALID_STYLE_ID_ERROR = 6,
VOICEVOX_RESULT_INVALID_MODEL_ID_ERROR = 7,
VOICEVOX_RESULT_STYLE_NOT_FOUND_ERROR = 6,
VOICEVOX_RESULT_MODEL_NOT_FOUND_ERROR = 7,
VOICEVOX_RESULT_INFERENCE_ERROR = 8,
VOICEVOX_RESULT_EXTRACT_FULL_CONTEXT_LABEL_ERROR = 11,
VOICEVOX_RESULT_INVALID_UTF8_INPUT_ERROR = 12,
Expand All @@ -286,7 +286,7 @@ pub(crate) enum VoicevoxResultCode {
VOICEVOX_RESULT_UNLOADED_MODEL_ERROR = 19,
VOICEVOX_RESULT_LOAD_USER_DICT_ERROR = 20,
VOICEVOX_RESULT_SAVE_USER_DICT_ERROR = 21,
VOICEVOX_RESULT_UNKNOWN_USER_DICT_WORD_ERROR = 22,
VOICEVOX_RESULT_USER_DICT_WORD_NOT_FOUND_ERROR = 22,
VOICEVOX_RESULT_USE_USER_DICT_ERROR = 23,
VOICEVOX_RESULT_INVALID_USER_DICT_WORD_ERROR = 24,
VOICEVOX_RESULT_INVALID_UUID_ERROR = 25,
Expand Down

0 comments on commit 38effe9

Please sign in to comment.