# normalization_rules.yaml # 音声合成向けテキスト正規化ルール (例) unicode_normalize: NFKC # NFKCで正規化 remove_whitespace: true # True:連続する空白を1つに, 前後の空白削除 # 読み上げる記号 (前後にスペースを入れると分かち書きされやすい) replace_symbols: '&': ' アンド ' '%': ' パーセント ' '+': ' プラス ' '=': ' イコール ' '¥': ' 円 ' # 数字変換と組み合わせる必要あり '$': ' ドル ' '℃': ' ド ' # 必要に応じて追加 # 発話しない記号 (正規表現で指定) remove_symbols: '[「」『』【】[]()<>‘’“”・※→←↑↓*#〜]' # 句読点の扱い punctuation: remove: false # True:削除, False:置換 replacement: ' ' # 置換文字 (ポーズタグなど) target: '、。?!' # 対象の句読点 # 数字変換ルール (詳細は TextNormalizer 内のロジックで実装) number_conversion: enabled: true target: '\d+([\.,]\d+)?' # 整数、小数、カンマ区切りに対応するパターン (要調整) # アルファベット変換ルール alphabet_conversion: enabled: true rule: 'spellout' # 'spellout' (A->エー) or 'word' (辞書) dictionary: # rule='word' でなくても、特定の単語はこちらで定義可能 'AI': ' エーアイ ' 'USB': ' ユーエスビー ' 'DX': ' ディーエックス ' # 必要に応じて追加 # カスタム置換ルール (正規表現、上から順に適用) # 特定のドメイン知識に基づく置換などに使う custom_replacements_pre: # 数字変換などの前に行う置換 - pattern: '(株)' replacement: ' カブシキガイシャ ' - pattern: 'JR' # 全角を半角に (NFKCで処理されるはずだが念のため) replacement: 'JR' custom_replacements_post: # 全ての処理の後に行う置換 - pattern: ' {2,}' # 複数のスペースを1つに (最終調整) replacement: ' '