MENU

流暢さはAI英会話でどう数値化されるのか。間・つっかえ・話速の測り方を分解した

「流暢さ」という言葉は、英語学習でいちばん定義があいまいなまま使われている。

速く話せることなのか、止まらずに話せることなのか、自然に聞こえることなのか。

人によって指しているものが違う。

ところがAI英会話の採点では、流暢さははっきり1つの定義を与えられていて、しかもその定義は公開されている。

そしてその定義は、多くの人が想像している「速さ」とは違う。

この記事では、AIの音声採点の部品を売っている会社が公開している開発者向けドキュメントの記述だけを材料にして、流暢さがどう数値化されているかを開けていく。

サービスの順位づけはしない。仕組みの話だけをする。

TOC

【結論】流暢さはAI英会話で「単語と単語のあいだの無音」から計算されている

先に答えを置く。

多くのAI英会話が採点の土台に使っているマイクロソフトの発音評価では、流暢さは FluencyScore という結果値として返る。

公式ドキュメントの定義文はこうだ。

「与えられたスピーチの流暢さ。流暢さは、音声がネイティブ スピーカーによる単語間のサイレント区切りの使用にどの程度近づくかを示します」(発音評価の使い方・Microsoft Learn)。

⇒ 測っているのは音ではなく、音と音のあいだの「無音」だ。

この1文をていねいに読むと、3つのことが分かる。

  • 対象は単語間=単語と単語のつなぎ目。
  • 見ているのはサイレント区切り=黙っている部分。
  • 基準はネイティブ スピーカーの使い方にどの程度近づくか=速さの絶対値ではなく、置き方の近さ。

だから「速く言えば流暢さの点が上がる」という発想は、定義から外れている。

速さの話は、公式では別の項目に振り分けられている。次でそこを見る。

流暢さはAI英会話の採点で「話す速度」とは別の箱に入っている

同じ公式ドキュメントには、韻律を測る ProsodyScore という別の項目がある。

その定義文はこうだ。

「与えられたスピーチのプロソディー。プロソディは、ストレス、イントネーション、話す速度、リズムなど、与えられたスピーチがいかに自然であるかを示します」。

⇒ 「話す速度」という語は、流暢さではなく韻律の定義文の中にある。

採点項目公式の定義に入っている語粒度
FluencyScore(流暢さ)単語間のサイレント区切り全文レベル
ProsodyScore(韻律)ストレス/イントネーション/話す速度/リズム全文レベル
AccuracyScore(精度)音素がネイティブ スピーカーの発音とどの程度一致するか音素・音節・単語・全文
CompletenessScore(完全性)入力参照テキストに対する発音された単語の比率全文レベル

この分け方が分かると、採点結果の読み方が変わる。

ゆっくり話していても、間の置き方が英語らしければ流暢さの点は落ちにくい構造になっている。

逆に、速く話しても変なところで切っていれば、そこは拾われる。

⇒ 流暢さの点を上げる作業は「速く言う練習」ではなく「切る場所を直す練習」に近い。

流暢さの土台になる時間データ|AI英会話は100ナノ秒単位で測っている

「間」を数字にするには、まず時間を測る必要がある。

公式ドキュメントは、返ってくるJSONの中に Offset と Duration というフィールドがあることを示している。

説明はこうだ。「オフセットは、認識された音声がオーディオ ストリームで開始される時刻を表します。値は 100 ナノ秒単位で測定されます」。

⇒ 1秒を1,000万分割した単位で、どの音がいつ始まっていつ終わったかが記録されている。

しかもこの時間情報は、単語だけでなく音節にも付いている。

公式の例では、”hello” という単語に対して音節 hɛ と loʊ がそれぞれ Offset と Duration を持っている。

公式はこう補足している。「Offset と Duration の値を使用して、音節を対応する音素に合わせることができます」。

  • 単語Aが終わった時刻=Aの Offset + Aの Duration。
  • 単語Bが始まった時刻=Bの Offset。
  • その差が、AとBのあいだの無音の長さになる。

つまり流暢さの原材料は、この時間の引き算で作れる形になっている。

感覚の話ではなく、タイムスタンプの話だということだ。

流暢さと「つっかえ」|AI英会話が拾う2種類の区切りエラー

間そのものについては、公式が単語レベルのエラー種別を用意している。

これは厳密には韻律評価側のフィードバックだが、学習者が「つっかえた」と感じる現象がどう機械に見えているかが、ここに一番はっきり出ている。

エラー種別公式の説明ふだんの言葉でいうと
UnexpectedBreak単語の前に予期しない中断が発生したことを示します切ってはいけないところで止まった
MissingBreak単語の前に欠けている区切りを示します切るべきところで切らなかった
Monotone単調な音声を示します棒読みになっている

注目したいのは、この判定が「はい/いいえ」ではないことだ。

公式はこう書いている。「現在のバージョンでは、中断エラーの種類は提供されません。UnexpectedBreak – Confidence フィールドと MissingBreak – confidence フィールドにしきい値を設定して、単語の前に予期しない改行や欠落した改行があるかどうかを判断する必要があります」。

そして推奨値も公開されている。「両方の信頼度スコアで推奨されるしきい値は 0.75 です」。

⇒ 「つっかえた」と判定されるかどうかは、アプリを作った側が引いた線の位置で変わる。

公式自身も「0.75 は推奨される値ですが、独自のシナリオに基づいてしきい値を調整することをお勧めします」と書いており、調整されることを前提にしている。

同じ話し方でもアプリによって厳しさが違う理由は、ここに1つある。

流暢さのスコアはAI英会話の総合点にどう効くのか

公式は総合点の計算式をそのまま公開している(発音評価の使い方・Microsoft Learn)。

「精度、プロソディ、流暢さ、完全性のスコアを低から高 (各スコアが使用可能な場合) に並べ替え、最も低いスコアから s0 から s3 までの最高スコアを表す場合、発音スコアは次のように計算されます」。

シナリオ韻律スコア公式が示している式
読み取り(原稿を読む)ありPronScore = 0.4 * s0 + 0.2 * s1 + 0.2 * s2 + 0.2 * s3
読み取りなしPronScore = 0.6 * s0 + 0.2 * s1 + 0.2 * s2
話す(自由発話)ありPronScore = 0.6 * s0 + 0.2 * s1 + 0.2 * s2
話すなしPronScore = 0.6 * s0 + 0.4 * s1

s0 は「いちばん低いスコア」で、そこに最大の重みが乗る。

⇒ 流暢さが自分の最低点になっているなら、そこを1つ直すだけで総合点の動き方がいちばん大きい。

逆に流暢さが最高点なら、いくら磨いても係数 0.2 の枠でしか効かない。

公式はこの式について「各スコアの重要度に基づく加重計算を提供し、発音の包括的な評価を保証します」と説明している。

伸ばす順番が計算できる、というのは学習の設計としてかなり大きい。

流暢さの評価はAI英会話の練習形式で土台が入れ替わる

公式は評価を2種類に分けている(発音評価の使い方・Microsoft Learn)。

「スクリプト化された評価は、読み取り言語学習シナリオ用です。スクリプトなしの評価は、話す言語学習シナリオ用です」。

この2つは、設定の仕方からして違う。

公式の構成パラメーター表には ReferenceText についてこう書かれている。

「読み取り言語学習シナリオのスクリプト化された評価を実行する場合は、参照テキストを設定します。スクリプトなしの評価を実行する場合は、参照テキストを設定しないでください」。

読み上げ(スクリプトあり)自由会話(スクリプトなし)
参照テキスト設定する設定しない
流暢さスコア結果表にあり結果表にあり
完全性スコア結果表にあり公式の結果表に無い
使われるSTTモデルAzure STT公式いわく「STT Azureとは異なります」

最後の行が効いてくる。

公式の注意書きはこうだ。「スクリプトなしの評価では、使用される音声テキスト変換 (STT) モデルは、STT Azureとは異なります。非常に正確に認識されたテキストに基づく評価が必要な場合は、最初Azure STT を呼び出して参照テキストを取得してから、スクリプト化された評価を実行することをお勧めします」。

⇒ 自由会話モードの流暢さと、読み上げモードの流暢さは、同じ土俵の数字ではない。

同じアプリ内でモードを切り替えて点が動いたとき、実力が動いたとは限らない。

会話の側から見た流暢さ|AI英会話は沈黙をどう扱っているか

流暢さには、採点とは別にもう1つの顔がある。

会話が成立するかどうかに直結する「沈黙の扱い」だ。

音声で会話するAIは、あなたが話し終わったかどうかを無音の長さで判断している。音声を文字にする部品そのものの説明は音声テキスト変換の概要・Microsoft Learnにある。

OpenAIの公式ドキュメントは、この仕組みを2種類に分けて説明している(Realtime API・音声活動検出・OpenAI)。

  • server_vad=公式の説明は「Automatically chunks the audio based on periods of silence.」。無音の長さで区切る方式。
  • semantic_vad=公式の説明は「Chunks the audio when the model believes based on the words said by the user that they have completed their utterance.」。言った内容から言い終わりを推定する方式。
  • 公式は「For sessions and models that support VAD, the default value is server_vad.」と書いている。既定は無音方式だ。

そして server_vad の設定値が、そのまま「どこまで黙っていられるか」になる。

パラメーター公式の説明公式の例に書かれた値
silence_duration_msDuration of silence (in milliseconds) to detect speech stop. With shorter values turns will be detected more quickly.500
prefix_padding_msAmount of audio (in milliseconds) to include before the VAD detected speech.300
thresholdActivation threshold (0 to 1). A higher threshold will require louder audio to activate the model.0.5

⇒ 言葉に詰まって黙り込むと、そこが「発話の終わり」と判定されて、AIが話し始める。

これは流暢さの点数とは別の話だが、体感としては「流暢に話せないと会話が続かない」という形で現れる。

公式は semantic_vad 側に eagerness という設定も用意していて、値は「low / medium / high / auto」だ。

公式の説明は「low will let the user take their time to speak.」、つまり低く設定すると待ってくれる。

⇒ 「AIが待ってくれない」と感じるとき、それはあなたの流暢さだけの問題ではなく、設定の問題でもある。

流暢さのスコアはAI英会話ごとに満点が違う

流暢さの点数を他のアプリと比べても意味がない場合がある。

公式の構成パラメーターに GradingSystem という項目があるからだ(発音評価の使い方・Microsoft Learn)。

説明はこうだ。「スコア調整のポイント システム。FivePoint は、0 から 5 の浮動小数点スコアを提供します。HundredMark は、0 から 100 の浮動小数点スコアを提供します。既定値: FivePoint」。

⇒ 満点が5なのか100なのかは、アプリ側の設定で決まる。既定値は5点満点だ。

同じく Granularity という設定もあり、どこまで細かく結果を返すかが選べる。

公式は「使用できる値は Phoneme(フルテキスト・単語・音節・音素レベル)、Word、FullText(フルテキスト レベルでのみ)」という趣旨で説明し、既定値は Phoneme としている。

ただし流暢さは、もともと全文レベルにしか存在しない項目だ。

⇒ 粒度をいくら細かくしても、流暢さの内訳は単語ごとには割れない。

流暢さとCEFRの関係|AI英会話のレベル表示とは別の物差し

アプリによっては、点数とは別に「A2」「B1」のようなレベルが表示される。

これはCEFRという国際基準だ。

ケンブリッジ英語検定の公式ページは、CEFRをこう説明している。

「The Common European Framework of Reference for Languages (CEFR) is an international standard for describing language ability. It describes language ability on a six-point scale, from A1 for beginners, up to C2 for those who have mastered a language.」(About the CEFR・Cambridge English)

⇒ CEFRは「言語能力を6段階で記述するための国際基準」であって、発音評価の FluencyScore とは出どころがまったく違う。

片方は音声から機械が計算した0〜5(または0〜100)の数値。

もう片方は、言語能力を記述するために作られた6段階の枠組み。

⇒ 流暢さの点が上がったからCEFRのレベルが上がる、という関係を公式仕様のうえで直接たどることはできない。

同じ画面に並んでいても、2つは別の物差しだと思っておいたほうがいい。

流暢さの点を上げるためにAI英会話で何ができるか

ここからは、公式仕様から言えることだけを並べる。効果を約束する話はしない。

  • 速さを目標にしない。 流暢さの定義に「速度」の語はなく、あるのは「単語間のサイレント区切り」だけだ。
  • 切る位置を意識する。 区切りのエラーは UnexpectedBreak と MissingBreak の2方向。切りすぎと切らなすぎの両方が拾われる。
  • モードをそろえて比べる。 読み上げと自由会話では、公式が「使用されるSTTモデルが異なる」と明記している。
  • 自分の最低点から手を付ける。 総合点の式は最低点 s0 に 0.4〜0.6 の重みを置いている。
  • 満点が5か100かを確認する。 GradingSystem の既定値は FivePoint。数字の大小はアプリ間で直接比較できない。

もう1つ、会話が途切れる問題については設定側の手がある。

OpenAIの公式は silence_duration_ms について「With shorter values turns will be detected more quickly.」と書いている。短くすれば速く切られる、つまり長くすれば待つ時間が伸びる方向の設定だ。

アプリ側にこの調整が開放されているかどうかは製品によるが、仕組みとしては「待ち時間は調整できる値」である。

流暢さに関するよくある質問

Q. 流暢さは速く話せば上がるのか。 A. 公式の定義は「音声がネイティブ スピーカーによる単語間のサイレント区切りの使用にどの程度近づくか」であり、速度の語は入っていない。速度は韻律側の定義文に置かれている。

Q. 流暢さの点が低かった単語はどれか知りたい。 A. 公式の結果表で流暢さの粒度は「全文レベル」だけだ。単語ごとの内訳は流暢さとしては返らない。単語レベルで返るのは ErrorType のほうになる。

Q. アプリによって流暢さの厳しさが違うのはなぜか。 A. 区切りの判定は信頼度スコアとしきい値で決まる形になっており、公式は「0.75 は推奨される値ですが、独自のシナリオに基づいてしきい値を調整することをお勧めします」と書いている。線の位置は作り手が決めている。

Q. 話している途中でAIに割り込まれる。流暢さが足りないからか。 A. 採点ではなく音声活動検出の設定の話だ。既定は無音の長さで区切る server_vad で、公式の例では silence_duration_ms が 500 になっている(出典)。

Q. 流暢さの点とCEFRのレベルはどう対応するのか。 A. CEFRはケンブリッジ英語検定の公式説明によれば「言語能力を記述するための国際基準」で、A1からC2までの6段階だ。発音評価の FluencyScore とは別の枠組みであり、公式仕様のうえで直接の換算表はたどれない。

まとめ|流暢さはAI英会話で「間の置き方」を数字にしたもの

もう一度整理する。

  • 流暢さ=FluencyScore。公式の定義は「単語間のサイレント区切りの使用がネイティブにどの程度近づくか」で、速さではない。
  • 原材料は Offset と Duration。公式は100 ナノ秒単位で時刻を返すと書いている。
  • つっかえは UnexpectedBreak と MissingBreak の2方向で拾われ、判定線の推奨値は 0.75。
  • 総合点は最低点に最大の重みが乗る式。流暢さが最低点かどうかで優先順位が変わる。
  • 会話が切られるのは採点ではなく音声活動検出の話。既定は無音の長さで区切る方式だ。

⇒ 流暢さは「勢い」ではなく「間の置き方」の話だ。そう分かると、練習で何を直せばいいかがはっきりする。

※本記事の一次ソースはすべて2026-09-16に各公式ドキュメントで確認した。仕様は更新されるため、最新は各公式ドキュメントで確認してほしい。

Let's share this post !

Author of this article

Comments

To comment

TOC