Skip to content

Commit e2d1053

Browse files
committed
Add: ユーザー辞書機能で対応する品詞の種類を拡充
「固有名詞」の中のどういうカテゴリなのかも含めて辞書登録できるようにする
1 parent cd110d6 commit e2d1053

File tree

4 files changed

+68
-8
lines changed

4 files changed

+68
-8
lines changed

test/e2e/__snapshots__/test_openapi/test_OpenAPIの形が変わっていないことを確認.json

+7-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

voicevox_engine/app/routers/user_dict.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def add_user_dict_word(
5858
word_type: Annotated[
5959
WordTypes | SkipJsonSchema[None],
6060
Query(
61-
description="PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか"
61+
description="PROPER_NOUN(固有名詞)、LOCATION_NAME(地名)、ORGANIZATION_NAME(組織・施設名)、PERSON_NAME(人名)、PERSON_FAMILY_NAME(姓)、PERSON_GIVEN_NAME(名)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか"
6262
),
6363
] = None,
6464
priority: Annotated[

voicevox_engine/user_dict/model.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,16 @@
1515
class WordTypes(str, Enum):
1616
"""品詞"""
1717

18-
PROPER_NOUN = "PROPER_NOUN"
19-
COMMON_NOUN = "COMMON_NOUN"
20-
VERB = "VERB"
21-
ADJECTIVE = "ADJECTIVE"
22-
SUFFIX = "SUFFIX"
18+
PROPER_NOUN = "PROPER_NOUN" # 固有名詞
19+
LOCATION_NAME = "LOCATION_NAME" # 地名
20+
ORGANIZATION_NAME = "ORGANIZATION_NAME" # 組織・施設名
21+
PERSON_NAME = "PERSON_NAME" # 人名
22+
PERSON_FAMILY_NAME = "PERSON_FAMILY_NAME" # 姓
23+
PERSON_GIVEN_NAME = "PERSON_GIVEN_NAME" # 名
24+
COMMON_NOUN = "COMMON_NOUN" # 一般名詞
25+
VERB = "VERB" # 動詞
26+
ADJECTIVE = "ADJECTIVE" # 形容詞
27+
SUFFIX = "SUFFIX" # 接尾辞
2328

2429

2530
USER_DICT_MIN_PRIORITY = 0

voicevox_engine/user_dict/user_dict_word.py

+50
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ class _PartOfSpeechDetail:
2626

2727

2828
_costs_proper_noun = [-988, 3488, 4768, 6048, 7328, 8609, 8734, 8859, 8984, 9110, 14176]
29+
_costs_location_name = [147, 4350, 5403, 6456, 7509, 8562, 8778, 8994, 9210, 9427, 13960] # fmt: skip # noqa
30+
_costs_organization_name = [1691, 4087, 4808, 5530, 6251, 6973, 7420, 7867, 8314, 8762, 13887] # fmt: skip # noqa
31+
_costs_person_name = [515, 516, 2253, 3990, 5727, 7464, 8098, 8732, 9366, 10000, 10001]
32+
_costs_person_family_name = [1991, 4126, 4974, 5823, 6672, 7521, 8001, 8481, 8961, 9442, 12808] # fmt: skip # noqa
33+
_costs_person_given_name = [2209, 3772, 4905, 6038, 7171, 8304, 8728, 9152, 9576, 10000, 13842] # fmt: skip # noqa
2934
_costs_common_noun = [-4445, 49, 1473, 2897, 4321, 5746, 6554, 7362, 8170, 8979, 15001]
3035
_costs_verb = [3100, 6160, 6360, 6561, 6761, 6962, 7414, 7866, 8318, 8771, 13433]
3136
_costs_adjective = [1527, 3266, 3561, 3857, 4153, 4449, 5149, 5849, 6549, 7250, 10001]
@@ -42,6 +47,51 @@ class _PartOfSpeechDetail:
4247
cost_candidates=_costs_proper_noun,
4348
accent_associative_rules=["*", "C1", "C2", "C3", "C4", "C5"],
4449
),
50+
WordTypes.LOCATION_NAME: _PartOfSpeechDetail(
51+
part_of_speech="名詞",
52+
part_of_speech_detail_1="固有名詞",
53+
part_of_speech_detail_2="地域",
54+
part_of_speech_detail_3="一般",
55+
context_id=1353,
56+
cost_candidates=_costs_location_name,
57+
accent_associative_rules=["*", "C1", "C2", "C3", "C4", "C5"],
58+
),
59+
WordTypes.ORGANIZATION_NAME: _PartOfSpeechDetail(
60+
part_of_speech="名詞",
61+
part_of_speech_detail_1="固有名詞",
62+
part_of_speech_detail_2="組織",
63+
part_of_speech_detail_3="*",
64+
context_id=1352,
65+
cost_candidates=_costs_organization_name,
66+
accent_associative_rules=["*", "C1", "C2", "C3", "C4", "C5"],
67+
),
68+
WordTypes.PERSON_NAME: _PartOfSpeechDetail(
69+
part_of_speech="名詞",
70+
part_of_speech_detail_1="固有名詞",
71+
part_of_speech_detail_2="人名",
72+
part_of_speech_detail_3="一般",
73+
context_id=1349,
74+
cost_candidates=_costs_person_name,
75+
accent_associative_rules=["*", "C1", "C2", "C3", "C4", "C5"],
76+
),
77+
WordTypes.PERSON_FAMILY_NAME: _PartOfSpeechDetail(
78+
part_of_speech="名詞",
79+
part_of_speech_detail_1="固有名詞",
80+
part_of_speech_detail_2="人名",
81+
part_of_speech_detail_3="姓",
82+
context_id=1350,
83+
cost_candidates=_costs_person_family_name,
84+
accent_associative_rules=["*", "C1", "C2", "C3", "C4", "C5"],
85+
),
86+
WordTypes.PERSON_GIVEN_NAME: _PartOfSpeechDetail(
87+
part_of_speech="名詞",
88+
part_of_speech_detail_1="固有名詞",
89+
part_of_speech_detail_2="人名",
90+
part_of_speech_detail_3="名",
91+
context_id=1351,
92+
cost_candidates=_costs_person_given_name,
93+
accent_associative_rules=["*", "C1", "C2", "C3", "C4", "C5"],
94+
),
4595
WordTypes.COMMON_NOUN: _PartOfSpeechDetail(
4696
part_of_speech="名詞",
4797
part_of_speech_detail_1="一般",

0 commit comments

Comments
 (0)