Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

InvalidStyleId, InvalidModelId, UnknownWord…NotFoundにする #622

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading