見出し画像

読みは合っているのに不自然?Aivis Cloud API でイントネーションとアクセントを直す方法

この記事はこんな方に向けた内容です。
・読みは合っているのに、イントネーションが不自然に聞こえる方
・特定の単語だけ、意図と異なるアクセントになる方
・「橋」と「箸」のような同音異義語の読み分けで困っている方
・Aivis Cloud API でアクセント型を指定する方法を知りたい方

⚠️ 本記事の内容は、2026年9月時点の情報です。最新情報もあわせて確認してください。

皆さんこんにちは。
感情豊かな音声合成技術を誰もがかんたんに活用できる未来を目指す、Aivis Projectです✨

音声合成を使っていると、文字の読み方自体は合っているのに、なぜか不自然に聞こえることがあります。

「発音は間違っていないのに、単語の印象が違う」
「一つひとつの単語は合っているが、文章として聞くと抑揚がおかしい」

このような違和感には、主に次の2種類があります。

・単語の中で音が下がる位置が違う「アクセント型」の問題
・文章の区切り方や間の取り方による「イントネーション」の問題

どちらも同じように聞こえることがありますが、適した直し方は異なります。

この記事では、Aivis Cloud API のユーザー辞書、句読点、改行、SSML を使い分けながら、読み上げを自然に整える方法を順番に解説します📚



【結論】まずは3段階で切り分ける

イントネーションに違和感があるときは、次の順番で確認すると原因を見つけやすくなります。

・特定の単語だけ不自然なら、ユーザー辞書で accent_type を指定する
・文のまとまり方が不自然なら、句読点を見直す
・明確に区切りたい場合は、改行または SSML を使う

⚠️ 繰り返し使う社名、商品名、人名、地名、専門用語は、原稿ごとに句読点を調整するのではなく、ユーザー辞書へ登録するのがおすすめです。

句読点や改行は文章全体の流れを整える方法であり、特定の単語のアクセント型を直接指定する機能ではありません。

まず「単語だけがおかしいのか」「文章全体の区切り方がおかしいのか」を切り分けることが大切です✨


【基礎】アクセント型とは何か

Aivis Cloud API のユーザー辞書では、東京式アクセントに基づいて、単語のアクセント型を指定できます。

日本語のアクセントでは、音の高低と、音がどこで下がるかが重要です。

同じ「ハシ」という読みでも、「箸」「橋」「端」では、アクセントがやや異なります。
読み仮名だけを合わせても、アクセント型が違うと別の単語のように聞こえることがあります。

ユーザー辞書の accent_type には、音が下がる直前のモーラの位置を1から数えて指定します。

0:単語の中で音が下がらない平板型
1:1モーラ目のあとで音が下がる頭高型
2:2モーラ目のあとで音が下がる型
3:3モーラ目のあとで音が下がる型

以降も同様に、音が下がる位置を指定します。

モーラの数え方

モーラとは、日本語の音の長さを数える単位です。

基本的には、かな1文字分の音が1モーラに相当します。ただし、次のような例外があります。

・「キャ」「シュ」「チョ」などの拗音は、2文字で1モーラ
・小さい「ッ」は1モーラ
・「ン」は1モーラ
・長音記号の「ー」は1モーラ

たとえば「コンピューター」は、文字数ではなく、実際の音の単位に分けて数える必要があります。

⚠️ accent_type は通常の配列インデックスのような0始まりではありません。アクセント位置は1始まりで、0 だけが平板型を表す特別な値です。


【手順1】ユーザー辞書でアクセント型を指定する

特定の単語を繰り返し使用する場合は、Aivis Cloud API のユーザー辞書へ登録します。

ユーザー辞書を API から作成・更新するときは、次のエンドポイントを使用します。

PUT /v1/user-dictionaries/{user_dictionary_uuid}

リクエストの例は次のとおりです。

{
  "name": "人名・固有名詞辞書",
  "description": "読み方とアクセントを調整するための辞書",
  "word_properties": [
    {
      "uuid": "00000000-0000-4000-8000-000000000001",
      "surface": ["新田", "真剣佑"],
      "pronunciation": ["アラタ", "マッケンユウ"],
      "accent_type": [1, 3],
      "word_type": "PERSON_NAME",
      "priority": 5
    }
  ]
}

辞書の UUID と、辞書へ登録する単語の UUID は、クライアント側で生成して指定します。

surface

surface には、実際の入力テキストに現れる表記を指定します。

"surface": ["AivisSpeech"]

複数のアクセント句へ分けたい場合は、配列を分けます。

"surface": ["新田", "真剣佑"]

pronunciation

pronunciation には、カタカナで読み方を指定します。

"pronunciation": ["アラタ", "マッケンユウ"]

accent_type

accent_type には、それぞれのアクセント句に対応するアクセント型を指定します。

"accent_type": [1, 3]

⚠️ surface、pronunciation、accent_type は、アクセント句ごとに要素数をそろえる必要があります。

たとえば surface を2要素に分けた場合は、pronunciation と accent_type も2要素にします。

word_type

word_type には、登録する単語の種類を指定します。

たとえば、会社名や団体名には ORGANIZATION_NAME、人名には PERSON_NAME、一般名詞には COMMON_NOUN を使用できます。

実際の単語に合った品詞を指定することで、周囲の単語と接続するときの解析にも利用されます。

priority

priority は、辞書に登録した単語をどの程度優先して適用するかを、0〜10の範囲で指定します。

未指定時の既定値は 5 です。

最初から極端に高い値を指定するのではなく、まず 5 で確認し、辞書が意図どおり適用されない場合に少しずつ上げると調整しやすくなります。

詳しいフィールドや指定可能な値は、Aivis Cloud API 公式ドキュメントもあわせて確認してください。


【重要】辞書は作成しただけでは適用されない

作成したユーザー辞書を音声合成へ反映するには、音声合成リクエストで user_dictionary_uuid を指定します。

{
  "model_uuid": "音声合成モデルのUUID",
  "text": "新田真剣佑さんについてご紹介します。",
  "user_dictionary_uuid": "使用するユーザー辞書のUUID",
  "output_format": "mp3"
}

user_dictionary_uuid を指定しなかった場合は、Aivis Cloud API の既定の辞書だけが使用されます。

「辞書へ登録したのに何も変わらない」という場合は、最初に user_dictionary_uuid の指定を確認してください。

また、1回の音声合成リクエストで指定できるユーザー辞書は1つです。複数の辞書に分かれている単語を同時に使いたい場合は、必要な単語を1つの辞書へまとめます。


【AivisSpeech連携】調整済みの辞書をインポートする

AivisSpeech の「読み方&アクセント辞書」で調整した辞書は、Aivis Cloud API へインポートできます。

使用するエンドポイントは次のとおりです。

POST /v1/user-dictionaries/{user_dictionary_uuid}/import

AivisSpeech エディタからエクスポートした JSON や、AivisSpeech Engine のユーザー辞書 API から取得したデータをインポートできます。

反対に、Aivis Cloud API 側の辞書を AivisSpeech Engine 互換形式でエクスポートすることもできます。

手元の AivisSpeech で音声を聞きながら読み方とアクセントを調整し、内容が固まったらクラウドへ移すと、数値だけを見ながら調整するより確認しやすくなります✨


【手順2】句読点で文章のまとまりを調整する

単語のアクセント型は合っているのに、文章として不自然に聞こえる場合は、文の区切り方を確認します。

音声合成では、入力テキストから文章のまとまりや息継ぎの位置を推定します。句読点が少なすぎると、本来は分けたい部分が一続きに解釈されることがあります。

この商品は今すぐお使いいただけます。

次のように読点を加えると、文章のまとまり方が変わる場合があります。

この商品は、今すぐお使いいただけます。

ただし、句読点はアクセント型を直接指定する機能ではありません。

単語そのものの音の下がり方を直したい場合はユーザー辞書、文章の区切り方を調整したい場合は句読点と考えると、使い分けやすくなります。

⚠️ 読点を増やしすぎると、短い間隔で音声が区切られ、かえって不自然になることがあります。「実際に話すとき、そこで息継ぎをするか」を基準に調整してください。


【手順3】改行で合成単位を分ける

Aivis Cloud API は、改行や対応する SSML タグで区切られた単位ごとに音声を生成し、完成した音声を順番に結合して出力します。

そのため、改行は文章を見やすくするだけでなく、音声を生成する単位にも影響します。

本日は新しいサービスについてご紹介します。
まずは、基本的な使い方から見ていきましょう。

後ろの文章に引っ張られてイントネーションが不自然になる場合や、話題の切り替わりを明確にしたい場合は、意味のまとまりに合わせて改行します。

改行部分に入る無音時間は、line_break_silence_seconds で調整できます。既定値は0.4秒です。

{
  "model_uuid": "音声合成モデルのUUID",
  "text": "本日は新しいサービスについてご紹介します。\nまずは、基本的な使い方から見ていきましょう。",
  "line_break_silence_seconds": 0.25
}

値を小さくすると前後が素早くつながり、大きくすると段落の切り替わりをはっきり聞かせられます。

ただし、短いフレーズごとに細かく改行すると、文章や感情の流れが途切れやすくなります。意味や感情が続く1〜3文程度を、ひとつのまとまりとして考えるのが目安です。


【応用】SSMLで読み方や間を部分的に調整する

Aivis Cloud API は、SSML のサブセットに対応しています。

SSML を利用する場合は、対応しているタグと属性だけを使用してください。ほかの音声合成サービス向けの SSML を、そのまま利用できるとは限りません。

subで一時的に読み方を変える

<sub> タグを使うと、原稿上の表記を残したまま、読み方だけを置き換えられます。

<sub alias="エーアイ">AI</sub>音声合成の最新動向をお伝えします。

その原稿で一度だけ読み方を変更したい場合には便利です。

ただし、<sub> ではアクセント型を直接指定できません。

表記、読み方、アクセント型を継続的にそろえたい場合は、ユーザー辞書を使用してください。

breakで無音を入れる

<break> タグを使うと、指定した場所へ無音を入れられます。

音声合成の<break time="200ms"/>基礎について解説します。

前後のまとまりを少し離したいものの、改行として大きく区切りたくない場合に利用できます。

リクエストでは、SSML を使用することがわかるように use_ssml を明示できます。

{
  "model_uuid": "音声合成モデルのUUID",
  "text": "音声合成の<break time=\"200ms\"/>基礎について解説します。",
  "use_ssml": true
}

Aivis Cloud API では use_ssml の既定値は true ですが、実装意図を明確にしたい場合は明示的に指定しても構いません。

なお、SSML の <p> や <s> で合成単位を指定した部分では、通常の改行向けに設定する line_break_silence_seconds は適用されません。間の長さを細かく調整したい場合は <break> を使用します。

対応する SSML の詳しい仕様は、Aivis Project 公式の SSML 解説をご覧ください。


【チェック】直らないときに確認すること

イントネーションやアクセントが意図どおりにならない場合は、次の順番で確認してください。

・音声合成リクエストで user_dictionary_uuid を指定しているか
・指定している辞書の UUID が正しいか
・surface の表記が、実際の入力テキストに対応しているか
・pronunciation をカタカナで指定しているか
・surface、pronunciation、accent_type の要素数がそろっているか
・accent_type のモーラ数を正しく数えているか
・word_type が登録する単語の種類に合っているか
・priority が低すぎないか(5~8推奨)
・同じモデル、話者、スタイル、パラメータで比較しているか
・句読点や改行によって、意図しない位置で区切られていないか

確認するときは、最初から長い文章で試すのではなく、対象の単語を含む短い一文で音声を生成すると原因を切り分けやすくなります。

また、priority を高くしても、間違った pronunciation や accent_type が正しくなるわけではありません。まず登録内容を確認し、そのあとで適用の優先度を調整してください。


【モデルとスタイル】同じ条件で聞き比べる

辞書、句読点、改行を調整しても違和感が残る場合は、使用する音声合成モデルや話者スタイルを変えて聞き比べる方法もあります。

モデルやスタイルによって、声質だけでなく、文章全体の話し方や表現の傾向も異なります。

比較するときは、テキスト、ユーザー辞書、話速などの条件をそろえ、モデルまたはスタイルだけを変更してください。複数の設定を同時に変更すると、何が結果へ影響したのかわかりにくくなります。

AivisHub で公開されているモデルを利用する場合は、モデルごとに定められたライセンスや利用条件も必ず確認してください。

pitchはアクセント修正用ではない

pitch は、音声全体の高さを変更するパラメータです。特定の単語のアクセント型を変更する機能ではありません。

Aivis Cloud API では、pitch を既定値の 0.0 から変更すると、音質が劣化する場合があり、生成速度も低下します。

単語のアクセントを直したい場合は、pitch ではなくユーザー辞書の accent_type を使用してください。


よくある質問(FAQ)

Q. accent_typeの数字は0始まりですか?

通常のアクセント位置は1始まりです。

音が下がる直前のモーラの位置を、1、2、3 のように指定します。0 は配列の先頭ではなく、単語内で音が下がらない平板型を表します。

Q. 拗音や長音はどう数えますか?

「キャ」「シュ」「チョ」などの拗音は2文字で1モーラです。

小さい「ッ」、撥音の「ン」、長音記号の「ー」は、それぞれ1モーラとして数えます。

Q. 辞書へ登録したのに読み方が変わりません。

音声合成リクエストで user_dictionary_uuid を指定しているか確認してください。

あわせて、辞書の UUID、surface の表記、pronunciation がカタカナになっているか、priority が低すぎないかを確認します。

Q. 同じ表記を文脈によって異なるアクセントで読み分けられますか?

ユーザー辞書は、登録した表記に対して読み方とアクセント型を設定する仕組みです。同じ辞書内の同一表記を、意味に応じて複数のアクセントへ自動的に切り替える用途には向きません。

用途ごとにユーザー辞書を分けてリクエスト単位で切り替える、入力側で表記を区別する、必要な部分を別のリクエストとして生成する、といった方法を検討してください。

なお、<sub> は読み方を置き換えられますが、アクセント型を直接指定することはできません。

Q. 句読点を増やしたら、音声が途切れて聞こえるようになりました。

句読点が多すぎる可能性があります。

実際に人が話すときの息継ぎや、意味のまとまりを基準に減らしてください。長さを細かく指定したい間には、句読点の代わりに <break> を使用できます。

Q. 改行とbreakはどのように使い分ければよいですか?

話題や段落が変わり、合成する単位自体を分けたい場合は改行が適しています。

同じ文脈の中で、短い間だけを追加したい場合は <break> が適しています。

Q. AivisSpeechで作った辞書をAivis Cloud APIでも使えますか?

使えます。

AivisSpeech の「読み方&アクセント辞書」からエクスポートした JSON を、Aivis Cloud API のユーザー辞書インポート API へ送信できます。


まとめ

・特定の単語だけ不自然な場合は、ユーザー辞書の accent_type を確認する
・アクセント位置は1始まりで指定し、0 は平板型を表す
・surface、pronunciation、accent_type の要素数をそろえる
・作成した辞書は、音声合成時に user_dictionary_uuid を指定して適用する
・句読点は文章のまとまり、改行は合成単位、SSML は部分的な読み方や間の調整に使う
・<sub> ではアクセント型を直接指定できない
・pitch は単語のアクセントを直すためのパラメータではない

読み方が合っているのに不自然に聞こえるとき、すぐにモデルや声質を変える必要があるとは限りません。

まずは、単語のアクセント型と、文章全体の区切り方を分けて確認してみてください。

辞書、句読点、改行、SSML を目的に合わせて使い分けることで、聞き手にとって自然で伝わりやすい音声へ近づけられます✨

以上で、この記事はおしまいです。Aivis Project や Aivis Cloud API に関してご不明点やご相談がある場合には、お問い合わせフォームよりお気軽にご連絡ください。

🔗 関連リンク

Aivis Cloud API 公式ドキュメント
Aivis Cloud API のユーザー辞書を作成・利用する方法
話速・音量・間・読み方を調整!SSML 活用ガイド
Aivis Project 公式サイト
AivisHub


いいなと思ったら応援しよう!