AI英会話の発音判定は、あなたの英語が上手いかどうかを測っていない。
測っているのは、音素がネイティブスピーカーの発音とどの程度一致するかだ。
これは筆者の解釈ではなく、発音判定の部品を売っている側が、開発者向けドキュメントにそう書いている。
「点が上がらない」「昨日と同じように読んだのに点が違う」という感覚は、たいていこの1行を知らないところから来ている。
そして発音判定は、ブラックボックスではない。
指標の名前、返ってくる粒度、総合点の計算式、しきい値、使えるロケールの範囲、エラーの種類まで、ほぼすべてが公開されている。
この記事では Azure AI Speech の発音評価ドキュメントを開いて、点が上がる理由と上がらない理由を仕様から分解する。
サービスの順位づけはしない。仕組みの話だけをする。
【結論】AI英会話の発音判定は「音素がネイティブとどれだけ一致したか」を測っている
先に答えを置く。
発音評価のドキュメントは、いちばん中心の指標 AccuracyScore をこう定義している。「音声の発音精度。精度は、音素がネイティブ スピーカーの発音とどの程度一致するかを示します」。
つまり判定の単位は、単語でも文でもなく音素だ。
- 測っているもの=出した音が、参照する発音モデルの音素にどれだけ近いか。
- 測っていないもの=語彙の豊かさ、内容の面白さ、相手に伝わった感触。
- 点の付き方=音素レベルの点を、音節・単語・全文へ集計して上げていく。
ドキュメントの表現では「音節、単語、およびフルテキストの精度スコアは、音素レベルの精度スコアから集計され、評価目標で調整されます」となっている。
⇒ 下から積み上げる構造なので、総合点だけを見ていると「どの音が崩れたか」は見えなくなる。
この記事の残りは、その積み上げの中身を1段ずつ開けていく作業になる。
AI英会話の発音スコアは5つ|音素→音節→単語→全文の4段で積み上がる
返ってくるスコアは1つではない。5つある。
そして5つはそれぞれ違う粒度で返ってくる。ここが、アプリの画面を見ているだけでは分からない部分だ。
| 指標 | 何を測るか(ドキュメントの定義) | 返ってくる粒度 |
|---|---|---|
AccuracyScore | 音素がネイティブスピーカーの発音とどの程度一致するか | 音素・音節(en-USのみ)・単語・全文 |
FluencyScore | 「音声がネイティブ スピーカーによる単語間のサイレント区切りの使用にどの程度近づくか」 | 全文レベルのみ |
CompletenessScore | 「入力参照テキストに対する発音された単語の比率によって計算されます」 | 全文レベルのみ |
ProsodyScore | 「ストレス、イントネーション、話す速度、リズムなど、与えられたスピーチがいかに自然であるか」 | 全文レベルのみ |
PronScore | 上の4つから重み付きで計算される全体スコア | 全文レベルのみ |
この表から、すぐに言えることが2つある。
1つ目。細かい位置情報を持っているのは AccuracyScore だけだ。 流暢さもプロソディも完全性も、全文に1つの数字しか返らない。
2つ目。「流暢さ」は速さではなく、単語と単語のあいだの無音の置き方で測られている。 早口にしても FluencyScore が上がるとは限らない、ということが定義から読める。
そして音素と単語のあいだには、もう1段ある。音節だ。
ドキュメントは音節を置いている理由をはっきり書いている。「単語は通常、音素ごとにではなく音節ごとに発音されます。音節のグループ化は読みやすく、話す習慣に合わせて調整されます」。
- technological|音素
teknələdʒɪkl→ 音節tek·nə·lɑ·dʒɪkl(4つに割れる) - hello|音素
hɛloʊ→ 音節hɛ·loʊ(2つ) - luck|音素
lʌk→ 音節lʌk(割れない) - photosynthesis|音素
foʊtəsɪnθəsɪs→ 音節foʊ·tə·sɪn·θə·sɪs(5つ)
⇒ 音節レベルの結果と音素を受け取るには、粒度の設定を Phoneme にしておく必要がある。 既定値はそもそも Phoneme なので、ここを Word や FullText に落としているアプリでは、音節も音素も最初から返ってこない。
AI英会話の発音で「どの音がどう聞こえたか」はNBestPhonemesに出ている
ここが、この記事でいちばん伝えたい部分だ。
発音評価は「合っている/間違っている」の二択を返しているのではない。1つの音素について、候補を複数並べて、それぞれに信頼度スコアを付けている。
ドキュメントには、hello という1単語を読み上げたときの JSON の実例がそのまま載っている。数字を拾うと、こうなる。
| 段 | 中身 | スコア |
|---|---|---|
| 全文 | AccuracyScore | 100 |
| 単語 | hello | 99.0 |
| 音節 | hɛ | 91.0 |
| 音節 | loʊ | 100.0 |
| 音素 | h | 98.0 |
| 音素 | ɛ | 47.0 |
| 音素 | l | 100.0 |
| 音素 | oʊ | 100.0 |
全文は100点。単語は99点。なのに音素 ɛ だけが47点しかない。
これが「集計され、評価目標で調整される」ということの実物だ。1つの音が半分しか届いていなくても、上の段では消える。
では ɛ は何に聞こえていたのか。そこを開けるのが NBestPhonemes という配列で、同じ JSON にこう並んでいる。
ə= 100.0(いちばん高い)l= 52.0ɛ= 47.0(本来期待されていた音)h= 17.0æ= 2.0
ドキュメントは、この結果を「実際に発音される音素は h ə l oʊ です」とまとめている。期待されていた並びは h ɛ l oʊ だった。
⇒ 「hello の e があいまい母音に寄っていた」という、練習に直結する情報がここに入っている。
さらにドキュメントは、使い方まで書いている。「予想される音素ごとに最初の音声音素を最も高い信頼度スコアで連結できます」=候補の1位を順につなぐと、あなたが実際に出した音の並びが再構成できる。
候補を何個返すかも設定できる。NBestPhonemeCount というパラメーターに 5 のような整数を入れる形だ。上の例が5個並んでいるのはそのためだ。
加えて、音素と音節には時間の情報も付いている。Offset と Duration は100ナノ秒単位で、ドキュメントは「2 番目の音節 loʊ の開始オフセット (11700000) は、3 番目の音素 ( l ) と一致します」と例示している。
⇒ 音のどこが、いつ、何に聞こえたかまで返る設計になっている。 アプリの画面に総合点しか出ていないなら、それは仕様の制約ではなく、アプリ側の見せ方の選択だ。
AI英会話の発音の総合点は、公開された4本の計算式で決まる
総合点 PronScore の計算式は、4パターンとも公開されている。
前提はこうだ。精度・プロソディ・流暢さ・完全性のうち使えるものを、低いほうから順に s0・s1・s2・s3 と並べる。 s0 がいちばん低いスコアになる。
| シナリオ | プロソディ | 計算式 | 最低点の重み |
|---|---|---|---|
| 読み上げ | あり | 0.4 * s0 + 0.2 * s1 + 0.2 * s2 + 0.2 * s3 | 0.4 |
| 読み上げ | なし | 0.6 * s0 + 0.2 * s1 + 0.2 * s2 | 0.6 |
| 話す | あり | 0.6 * s0 + 0.2 * s1 + 0.2 * s2 | 0.6 |
| 話す | なし | 0.6 * s0 + 0.4 * s1 | 0.6 |
ドキュメントはこの式を「各スコアの重要度に基づく加重計算」と説明している。
4本すべてに共通しているのは、いちばん低い項目に、いちばん重い係数がかかることだ。
ここから、点数の動かし方が機械的に決まる。
得意な項目をさらに伸ばしても総合点はほとんど動かない。 0.2 の係数しか掛からないからだ。
いちばん低い1項目を潰すと総合点は大きく動く。 0.4〜0.6 の係数が掛かっているからだ。
⇒ 採点画面で最初に見るべきなのは、総合点ではなく「4項目のうち最下位はどれか」の1点だけになる。
もう1つ、表から読める性質がある。話すシナリオでは CompletenessScore が適用されない。 ドキュメントに「話すシナリオの場合 (完全性スコアは適用されません)」と明記されている。
だから自由に話す練習では、参照テキストに対する読み落としという概念そのものが存在しない。項目が減るぶん、残った項目の1つが沈むと総合点への影響はむしろ大きくなる。
AI英会話の発音判定は、設定ひとつで別物になる|8つの設定値
同じ音声を入れても、設定が違えば返ってくるものは変わる。
発音評価の設定オブジェクトに渡せる主な値は、次のとおりだ。既定値が何かを見ておくと、アプリの挙動が読める。
| 設定値 | 中身 | 既定値 |
|---|---|---|
ReferenceText | 発音が評価されるテキスト。省略可。設定すると読み上げ(スクリプト化された評価)、設定しないと話す(スクリプトなしの評価)になる | なし |
GradingSystem | FivePoint は0〜5、HundredMark は0〜100の浮動小数点スコア | FivePoint |
Granularity | Phoneme/Word/FullText。最下位の評価粒度を決める | Phoneme |
EnableMiscue | 参照テキストと比べた誤りの計算。True で ErrorType に Omission/Insertion が入る | False |
ScenarioId | 「カスタマイズされたポイント システムの GUID」 | なし |
EnableProsodyAssessment | プロソディ評価を有効にする。呼ぶと ProsodyScore が返る | 無効 |
PhonemeAlphabet | IPA か SAPI。指定しない場合は SAPI 形式になる | SAPI |
NBestPhonemeCount | 信頼度スコアを返す音声音素の候補数 | 指定しなければ返らない |
この表の中で、点数の見え方をいちばん変えるのは GradingSystem だ。
既定は5点満点で、100点満点はわざわざ指定したときだけになる。100点満点で表示しているアプリは、HundredMark を明示的に選んでいる。
次に効くのが EnableMiscue だ。既定が False なので、設定を入れていないと「読み飛ばし」「読み足し」は検出されない。
しかもここには追加の制約がある。30秒を超える音声は連続モードで処理する必要があり、その連続モードでは EnableMiscue がサポートされていない。
ドキュメントは、その場合の代替まで書いている。「Omission タグと Insertion タグを取得するには、認識された結果を参照テキストと比較する必要があります」=アプリ側で自前に比較しろ、という意味だ。
そして、いちばん見落とされているのが ScenarioId だ。
ドキュメントの説明はたった1行、「カスタマイズされたポイント システムの GUID」。裏を返せば、点の付け方はサービス側でカスタマイズできる余地があるということになる。
⇒ 同じ音声を別のアプリに入れて点が違っても、それだけでは「どちらかが甘い」とは言えない。 採点の器そのものが差し替えられる仕様になっている。
AI英会話の発音診断がフルで返るのは en-US だけ|33ロケールの中の話
発音評価が対応しているのは、英語だけではない。
言語サポートの一覧には「発音評価でサポートされている 33 のロケール」と書かれていて、アラビア語・中国語・日本語・韓国語・タイ語・ベトナム語などが並んでいる(Azure AI Speech の言語サポート・2026-09-11取得)。
その33の中で、英語は en-AU(オーストラリア)en-CA(カナダ)en-GB(イギリス)en-IN(インド)en-US(米国)の5つだ。既定のロケールは en-US になっている。
同じページは、選び方も指示している。「英国英語を学習している場合は、en-GB として言語を指定する必要があります」。
ところが、ロケールを英語の別の国に変えると、返ってくる機能が減る。
発音評価のドキュメントには「ロケールごとにサポートされる機能」という表があり、そこにはこう書かれている。
- プロソディ評価は
en-USロケールでのみ利用可能。(同じ注意書きが、設定の節と結果の節の両方に置かれている) - 音節グループは「IPA と SAPI を使用した
en-USでのみ」サポートされる。 - 音素名は IPA では
en-US、SAPI ではen-USとzh-CN。「他のロケールでは、音素スコアのみを取得できます」。 - 発話音素(前章の
NBestPhonemes)も、IPA・SAPI ともにen-USのみ。
⇒ en-GB を選んだ瞬間、プロソディ・音節グループ・音素名・音素の候補リストが、まとめて落ちる。
残るのは、精度・流暢さ・完全性の数字と、名前の付いていない音素スコアだけになる。
「イギリス英語で練習したいのに、診断が浅く感じる」という体感は、努力の問題ではなくこの表の差を見ていることになる。
そしてもう1つ、ロケール選びで迷ったときの指示も書いてある。「複数のロケールを持つ言語に設定するロケールがわからない場合は、各ロケールを個別に試してください」=どのロケールが自分の発音で高いスコアになるかを、実際に試して決めるという運用が公式に示されている。
AI英会話の発音のエラーは7種類|区切りと単調さは「しきい値0.75」で決まる
スコアとは別に、単語ごとに ErrorType というラベルが付く。
読み上げシナリオで取りうる値は、None/Omission(省略)/Insertion(挿入)/Mispronunciation(誤発音)/UnexpectedBreak(予期しない区切り)/MissingBreak(欠けた区切り)/Monotone(単調)の7つだ。
話すシナリオでは、このうち Omission と Insertion が消えて5つになる。参照テキストが無い以上、省略も挿入も定義できないからだ。
面白いのは、区切りと単調さの判定が「機械が勝手に決めた結論」ではないことだ。
ドキュメントは、区切りについてこう書いている。「現在のバージョンでは、中断エラーの種類は提供されません。UnexpectedBreak – Confidence フィールドと MissingBreak – confidence フィールドにしきい値を設定して、単語の前に予期しない改行や欠落した改行があるかどうかを判断する必要があります」。
そして推奨値まで出ている。「両方の信頼度スコアで推奨されるしきい値は 0.75 です」。
つまり UnexpectedBreak – Confidence が 0.75 を超えたら「予期しない間があった」、MissingBreak – confidence が 0.75 を超えたら「本来あるべき間が無かった」とアプリ側が判定する。
ドキュメントは「0.75 は推奨される値ですが、独自のシナリオに基づいてしきい値を調整することをお勧めします」とし、2つの区切りに別々のしきい値を割り当てることもできると書いている。
⇒ 「間の取り方を指摘されるかどうか」は、アプリがどこに線を引いたかで変わる。
単調さ(Monotone)にも、知っておくべき性質がある。
- イントネーションのエラー種別は現在
Monotoneのみをサポートしている。 - 「モノトーンは発話全体で検出されますが、タグはすべての単語に割り当てられます」=どの単語が単調だったかは分からない。
- 「同じ発話内のすべての単語が同じモノトーン検出情報を共有します」。
Monotone - SyllablePitchDeltaConfidenceは「ユーザーがカスタマイズしたモノトーン検出用に予約」されていて、ここでも感度を調整できる。
⇒ 単調と言われたら、文全体の抑揚を作り直すしかない。 単語単位で直す情報は、仕様上そもそも返ってこない。
なお Mispronunciation の線引きも公開されていて、単語の AccuracyScore が 60 未満のときにこのエラー種別が付く、という形で書かれている。
AI英会話の発音の点が伸びないとき、先に疑うのは入力側の音
発音評価は、マイクから入ってきた波形しか見ていない。
だから、口の動かし方を変えなくても、録り方を変えるだけで結果が動く余地がある。
音声認識に渡すべき音の条件は、グーグルが Cloud Speech-to-Text のベストプラクティスで具体的に書いている(2026-09-11取得)。
- サンプリングレートは 16,000 Hz 以上で録る。「Lower sampling rates may reduce accuracy」=低いと精度が下がりうる。ただし録り直しではない再サンプリングは避ける。
- 可逆コーデックを使う。 FLAC か LINEAR16 が推奨で、mp3・mp4・m4a・mu-law・a-law などの非可逆コーデックは精度を下げうる、と名指しされている。
- ノイズリダクションを自分でかけない。「applying noise-reduction signal processing to the audio before sending it to the service typically reduces recognition accuracy」=事前のノイズ除去は、ふつう精度を下げる。
- オートゲインコントロール(AGC)を使わない。 原文は「Do not use automatic gain control (AGC).」。
- 音が割れる(クリッピング)状態を避ける。
- マイクを話す人にできるだけ近づける。 とくに背景に音があるとき。
この6つは、そのまま「同じ発音なのに点が動く」ときの容疑者リストになる。
スマホの通話用マイクとPCのヘッドセットでは、経路もコーデックも違う。イヤホンのノイズキャンセリングが働いている状態は、上の3つ目と4つ目に真正面からぶつかる。
ベストプラクティスは「複数人が同時に話す、あるいは音量が違う声は、背景ノイズとして解釈され無視されることがある」とも書いている。家族の声やテレビが入る環境で点が落ちるのは、この線だ。
⇒ 点が動かないときは、口より先に「マイク・イヤホン・部屋」を1つずつ変えて測り直すほうが早い。
もう1つ、長さの制約もある。発音評価のドキュメントは「オーディオ ファイルが 30 秒を超える場合は、処理に連続モードを使用します」としている。長く読み上げる課題と短い1文の課題では、そもそも処理の経路が違う。
AI英会話の発音の点と、語彙・文法の点は別の仕組みで出ている
ここは、発音の話と混同されやすい部分だ。
アプリの結果画面には、発音のスコアと並んで「語彙」「文法」「話題との関連」のような点が出ることがある。
これは発音評価の指標ではない。コンテンツ評価という別の枠組みの話で、しかも移行の最中にある。
ドキュメントは重要な注意としてこう書いている。「コンテンツ評価 (プレビュー) は、Speech SDK バージョン 1.46.0 以降から廃止されます」。
そして代替の方法が、そのまま示されている。
「Azure OpenAI gpt-4o などのチャット モデルを使用して、コンテンツ評価の結果を取得できます」=語彙・文法・話題の採点は、いま言語モデル側の仕事になっている。
ドキュメントには、そのときに投げるメッセージの実例まで載っている。システムメッセージは「You are an English teacher and please help to grade a student’s essay from vocabulary and grammar and topic relevance」で始まり、出力形式を {"vocabulary": *.*(0-100), "grammar": *.*(0-100), "topic": *.*(0-100)} と指定している。
ユーザーメッセージ側にも、見逃せない1文がある。「The transcript is from speech recognition so that please first add punctuations when needed, remove duplicates and unnecessary un uh from oral speech」=音声認識の書き起こしであることを前提に、句読点を足し、重複と「un」「uh」を取り除いてから採点しろ、という指示だ。
⇒ 語彙・文法の点は、あなたの音声そのものではなく「書き起こされたテキスト」を読んで付けられている。
ここから2つのことが言える。
1つは、発音が崩れて別の単語に書き起こされると、文法の点まで巻き込まれて下がりうるということ。入力が同じテキストではなくなるからだ。
もう1つは、発音の点と文法の点が食い違っても、それは矛盾ではないということ。 音素を見ている装置と、テキストを読んでいる装置は、別の装置だ。
AI英会話の発音に関するよくある質問
Q. 発音の点が上がると、実際に通じるようになったと言えるか。 A. AccuracyScore は「音素がネイティブ スピーカーの発音とどの程度一致するか」を測っている。音としての近さが上がったとは言える。ただし測っているのは音素の一致度であって、相手に伝わったかどうかそのものではない。
Q. 総合点は高いのに発音が良くなった実感がないのはなぜか。 A. ドキュメントの実例では、全文の AccuracyScore が100・単語が99なのに、音素 ɛ は47だった。音素レベルの点は集計されて上の段では見えなくなる。音素・音節まで表示されるアプリなら、そこを見るほうが実態に近い。
Q. 総合点を効率よく上げるには、どの項目から直すべきか。 A. 計算式では最低点 s0 に 0.4〜0.6 の重みがかかり、他の項目は 0.2 か 0.4 だ。4項目のうち最下位を1つ潰すのが、式のうえではいちばん効く。
Q. イギリス英語で練習したいが、診断が浅い。 A. 仕様の差だ。プロソディ評価・音節グループ・音素名・発話音素は en-US のみと明記されている。en-GB を選ぶと、それらは返ってこない。
Q. 同じ文を読んだのに、アプリごとに点が違うのはなぜか。 A. 設定で変わる要素が多い。満点が5点か100点か(GradingSystem)、粒度(Granularity)、プロソディの有無、読み飛ばし検出の有無(EnableMiscue)、そして「カスタマイズされたポイント システムの GUID」である ScenarioId まである。
Q. 「間の取り方」を指摘されたりされなかったりするのはなぜか。 A. 区切りのエラー種別は現在のバージョンでは提供されず、UnexpectedBreak – Confidence と MissingBreak – confidence にしきい値を設定して判断する仕様になっている。推奨値は 0.75 だが、調整が推奨されており、アプリごとに線が違いうる。
Q. 発音の練習は読み上げと自由会話のどちらでやるべきか。 A. 診断の細かさが要るなら読み上げだ。参照テキストを設定する「スクリプト化された評価」でだけ CompletenessScore と Omission/Insertion が成立する。ドキュメント自身も、正確な評価が必要なら先に音声テキスト変換で参照テキストを取ってから評価する手順を勧めている(音声テキスト変換のドキュメント)。
まとめ|AI英会話の発音は「音素の一致度」で測られている
もう一度、仕様から言えることだけを並べ直す。
- 判定の単位は音素。
AccuracyScoreは「音素がネイティブ スピーカーの発音とどの程度一致するか」を示し、音節・単語・全文はそこから集計される。 - 総合点を見ても弱点は分からない。 公式の実例では全文100点・単語99点の裏で、音素
ɛが47点だった。NBestPhonemesまで開けて初めて「何に聞こえていたか」が出る。 - 総合点は公開された4本の式で決まる。 どの式でも最低点 s0 の重みがいちばん重い。伸ばすなら最下位の1項目を潰すのが最短になる。
- 細かい診断が全部返るのは
en-USだけ。 発音評価は33ロケール対応だが、プロソディ・音節グループ・音素名・発話音素は米国英語に限定されている。 - 点は口だけで決まらない。 設定値(
GradingSystem・Granularity・EnableMiscue・ScenarioId)と、入力の音質(サンプリングレート・コーデック・AGC・ノイズ処理)が結果を動かす。
⇒ 「発音の点が上がらない」と感じたときに見るべき順番は、①最下位の項目はどれか ②音素レベルで何点か ③ロケールは合っているか ④録り方は条件を満たしているか、の4つになる。
この4つはどれも仕様から機械的に決まるもので、気合や才能の話ではない。
発音判定は、あなたを評価する装置ではなく、音の一致度を数値で返すだけの計測器だ。計測器として使えば、どこを直せばいいかは毎回はっきり出る。
仕様の原文は、発音評価を使用する・言語サポート・Best practices・Speech-to-Text basics で誰でも読める。
※本記事の一次ソースはすべて2026-09-11に各公式ドキュメントで確認した。仕様は更新されるため、最新は各公式ドキュメントで確認してほしい。
Comments