English summary
Same speaker (the author's cloned voice), same 14 Japanese sentences, five automatic metrics, two speed settings. Reading accuracy (CER) shows no significant difference in either setting. ElevenLabs scores higher on perceived "human-ness" and high-frequency content, and on naturalness (NISQA) once speaking speed is matched. KOE's default speed is about 1.53× faster, so both settings are reported. This is a self-measurement by KOE, not a third-party audit; losing and non-significant results are shown as-is. Raw data: data.json. Full listening page: /bench/same-speaker.
3行でわかる
- 読みの正確さ(CER)は、どちらの速度条件でも有意差は確認できませんでした。数値上は ElevenLabs の方が小さい(誤りが少ない)傾向ですが、14文では偶然の範囲を超えた差とは言えません。
- 「人間の声に聞こえるか」と「高域のきらめき」は ElevenLabs が上。ここは事実として、そのままお伝えします。
- 自然さ(NISQA)は、KOE の既定速度なら互角(4.25 対 4.22、p=0.4631)。速度を0.65倍に揃えると ElevenLabs が上(p=0.0203)。
こんにちは、モコです。今日はちょっと真面目な話を、ゆっくり一緒に見ていきましょう。
これまでの音声比較って、じつは話者が違っていたんです。KOE は男性の声、比べた相手は女性の声。それだと「自然さ」も「人間らしさ」も、声の違いに引っぱられてしまいます。
だから今回は、どちらも同じ人の声に揃えて測り直しました。
01まず、結果から
KOE の既定速度(speed=1.0)と ElevenLabs eleven_v3 の平均値です。差は KOE − ElevenLabs。
NISQA=音声の自然さを1〜5で採点した自動評価。Human率=合成音声の検出器が「人間の声」と判定した割合(高いほど人間らしい)。CER=読み間違いの率(低いほど正確)。帯域=音に含まれる周波数の上限。高域=8kHz以上のきらめきの量。
| 指標 | 既定速度 | 差 | 速度0.65 | 差 | 文ごとの勝ち数 KOE/EL |
|---|---|---|---|---|---|
| NISQA | 有意差なしp=0.4631 | +0.03 | ElevenLabsp=0.0203 | -0.31 | 9/5 |
| Human率 | ElevenLabsp=0.0009 | -42.7pt | ElevenLabsp=0.0004 | -42.9pt | 2/12 |
| CER | 有意差なしp=0.1159 | +0.017 | 有意差なしp=0.2733 | +0.007 | 2/4/8 |
| 帯域 | ElevenLabsp=0.0001 | -5,066 | ElevenLabsp=0.0001 | -5,309 | 0/14 |
| 高域 | ElevenLabsp=0.0001 | -9.8 | ElevenLabsp=0.001 | -9.8 | 0/14 |
-
NISQA/5
KOE 既定4.25
ElevenLabs4.22
有意差なし(p=0.4631)差 +0.03
-
Human率
KOE 既定4.0%
ElevenLabs46.7%
p=0.0009差 -42.7pt
-
CER
KOE 既定0.096
ElevenLabs0.079
有意差なし(p=0.1159)差 +0.017
-
帯域Hz
KOE 既定7,457
ElevenLabs12,523
p=0.0001差 -5,066
-
高域dB
KOE 既定-23.5
ElevenLabs-13.8
p=0.0001差 -9.8
数字だけ見ると「ElevenLabs の勝ち」に見えます。でも、ここは正直に分けてお話ししますね。
読み間違い(CER)には、有意な差がありませんでした。0.096 と 0.079、p=0.1159。つまり「正しく読めているか」では、ほぼ並んでいます。
差が出たのは「人間の声に聞こえるか」と「高域のきらめき」。ここは ElevenLabs が上でした。
速度を揃えた条件(KOE speed=0.65)の数値も見る
KOE の既定速度は比較側より約1.53倍速いため、速度を揃えた条件でも測っています。差は KOE − ElevenLabs。
-
NISQA/5
KOE 速度0.653.91
ElevenLabs4.22
p=0.0203差 -0.31
-
Human率
KOE 速度0.653.8%
ElevenLabs46.7%
p=0.0004差 -42.9pt
-
CER
KOE 速度0.650.086
ElevenLabs0.079
有意差なし(p=0.2733)差 +0.007
-
帯域Hz
KOE 速度0.657,214
ElevenLabs12,523
p=0.0001差 -5,309
-
高域dB
KOE 速度0.65-23.6
ElevenLabs-13.8
p=0.001差 -9.8
この条件では自然さ(NISQA)も ElevenLabs が上(p=0.0203)。読みの正確さ(CER)は、この条件でも有意差なし(p=0.2733)。
02まず、耳で聴いてみる
代表的な2文を、この場で再生できます(どちらも −23 LUFS に正規化)。ヘッドホン推奨。全14文は聴き比べページへ。
先入観なしで比べたい方は、どちらか分からない状態で投票できる Voice Arena も使えます。
ja-1 エーアイは、あなたの、相棒です。事前に観てもらった、六十秒の動画。今…
KOE(既定速度)
ElevenLabs
ja-3 正直に答えます。取られる、の話。エーアイは、作業は、奪います。調べる…
KOE(既定速度)
ElevenLabs
035つの指標を、並べてみる
既定速度の平均値。バーは長いほど良い向きに揃えています(Human率は0〜100%、高域は0dBを100%、CERは誤りが少ないほど長い)。値そのものは各カードと下の表に。
14文を1文ずつ見た勝敗(既定速度)。1マスが1文で、緑が KOE、赤が ElevenLabs の勝ち、灰色は同値です。マスにカーソルを合わせると、その文の値が出ます。
- NISQA
- Human率
- CER
- 帯域
- 高域
KOE が上ElevenLabs が上同値
04文ごとの数値
全14文・既定速度。太字は各指標で良い方です。
| ID | NISQA/5 | Human率 | CER | 帯域Hz | 高域dB |
|---|---|---|---|---|---|
| ja-1 | 4.28EL 3.69 | 4.9%EL 15.6% | 0.177EL 0.177 | 2,906EL 10,650 | -29.2EL -16.7 |
| ja-2 | 4.30EL 4.22 | 2.4%EL 8.4% | 0.177EL 0.043 | 5,233EL 10,798 | -25.5EL -16.3 |
| ja-3 | 3.88EL 4.58 | 5.9%EL 72.3% | 0.027EL 0.027 | 8,311EL 14,075 | -21.9EL -15.3 |
| ja-4 | 4.66EL 4.50 | 2.8%EL 60.7% | 0.070EL 0.070 | 7,622EL 11,684 | -24.1EL -19.2 |
| ja-5 | 4.43EL 4.29 | 2.4%EL 49.5% | 0.052EL 0.074 | 7,555EL 14,775 | -23.2EL -11.9 |
| ja-6 | 4.56EL 4.46 | 2.4%EL 79.1% | 0.049EL 0.073 | 7,510EL 14,336 | -22.2EL -10.5 |
| ja-7 | 4.53EL 4.07 | 2.4%EL 93.3% | 0.129EL 0.129 | 8,860EL 13,565 | -19.5EL -13.3 |
| ja-8 | 4.19EL 3.70 | 8.0%EL 38.8% | 0.000EL 0.000 | 7,010EL 11,188 | -27.2EL -13.7 |
| ja-9 | 4.22EL 4.59 | 2.8%EL 8.2% | 0.108EL 0.061 | 9,147EL 12,113 | -21.8EL -11.2 |
| ja-10 | 4.49EL 4.18 | 3.5%EL 3.3% | 0.035EL 0.035 | 7,876EL 11,346 | -22.8EL -16.3 |
| ja-11 | 4.22EL 4.30 | 10.4%EL 4.5% | 0.165EL 0.097 | 8,648EL 13,342 | -22.9EL -9.9 |
| ja-12 | 4.42EL 4.30 | 2.5%EL 95.8% | 0.118EL 0.118 | 7,730EL 12,550 | -23.5EL -16.0 |
| ja-13 | 2.80EL 3.62 | 2.3%EL 62.3% | 0.034EL 0.034 | 7,846EL 11,821 | -24.5EL -14.0 |
| ja-14 | 4.52EL 4.52 | 2.7%EL 61.3% | 0.200EL 0.171 | 8,137EL 13,077 | -21.1EL -8.5 |
速度を揃えた条件(KOE speed=0.65)の文ごとの数値
| ID | NISQA/5 | Human率 | CER | 帯域Hz | 高域dB |
|---|---|---|---|---|---|
| ja-1 | 4.12EL 3.69 | 3.1%EL 15.6% | 0.177EL 0.177 | 2,862EL 10,650 | -28.7EL -16.7 |
| ja-2 | 3.77EL 4.22 | 2.4%EL 8.4% | 0.071EL 0.043 | 7,337EL 10,798 | -23.2EL -16.3 |
| ja-3 | 3.79EL 4.58 | 3.5%EL 72.3% | 0.027EL 0.027 | 7,700EL 14,075 | -24.4EL -15.3 |
| ja-4 | 4.19EL 4.50 | 4.9%EL 60.7% | 0.070EL 0.070 | 6,842EL 11,684 | -27.6EL -19.2 |
| ja-5 | 4.18EL 4.29 | 2.3%EL 49.5% | 0.074EL 0.074 | 7,004EL 14,775 | -24.1EL -11.9 |
| ja-6 | 4.37EL 4.46 | 2.4%EL 79.1% | 0.049EL 0.073 | 7,510EL 14,336 | -22.2EL -10.5 |
| ja-7 | 3.40EL 4.07 | 3.7%EL 93.3% | 0.129EL 0.129 | 10,034EL 13,565 | -18.4EL -13.3 |
| ja-8 | 4.25EL 3.70 | 2.7%EL 38.8% | 0.000EL 0.000 | 7,188EL 11,188 | -24.9EL -13.7 |
| ja-9 | 3.81EL 4.59 | 2.4%EL 8.2% | 0.139EL 0.061 | 8,895EL 12,113 | -19.8EL -11.2 |
| ja-10 | 4.24EL 4.18 | 2.7%EL 3.3% | 0.035EL 0.035 | 7,481EL 11,346 | -23.4EL -16.3 |
| ja-11 | 3.81EL 4.30 | 5.8%EL 4.5% | 0.117EL 0.097 | 8,555EL 13,342 | -22.1EL -9.9 |
| ja-12 | 3.87EL 4.30 | 2.3%EL 95.8% | 0.118EL 0.118 | 6,386EL 12,550 | -24.8EL -16.0 |
| ja-13 | 3.16EL 3.62 | 3.6%EL 62.3% | 0.034EL 0.034 | 4,132EL 11,821 | -26.8EL -14.0 |
| ja-14 | 3.74EL 4.52 | 11.3%EL 61.3% | 0.171EL 0.171 | 9,072EL 13,077 | -19.5EL -8.5 |
また ElevenLabs 側は 2026-06-03 に生成済みの音声をそのまま使っています(クレジット0のため新規生成は不可)。同じ日に作り直した比較ではありません。
05じゃあ KOE は、何を工夫しているの?
数字の勝ち負けより、ここが本題です。実際のコードから、設計の考え方を紹介します。
速さ
読みが決まる文は、待たせない
日本語のTTSは、固有名詞の読みをAIに判断させる工程(2〜3秒)があります。でもふつうの文の約6割は、その判断が何も変えません(2026-10-07 実測:会話10文中6、FAQ50文中31)。
そこで「辞書だけで読みが一つに決まる短文」は、判断を待たずに先に音声を作ってしまいます。迷ったら通さない、という安全側の設計です。
src/yomi-gate.js(60文字以下の短文のみ)/src/speak-speculate.js(先読み合成)速さ
会話の最初の一言は、別の道を通す
短い文だけ、自宅のMacにある軽いエンジンへ先に送ります。音の出始めが約0.7秒 → 約0.3秒(2026-10-07 実測)。失敗したら待たずに次の上流へ回すので、回線が不調でも会話が止まりません。
src/fast-upstream.js(120文字以下・日本語/英語・話速変更なし、が条件)止まらない
調子の悪いサーバーは、後ろに回す
上流は毎回シャッフルされるので、応答しないサーバーが先頭に来た回は、失敗の往復ぶん(実測0.5〜1秒)待っていました。失敗した上流は60秒だけ覚えて、後ろに回します。外しはしないので、全部が不調でも順に試せます。
src/upstream-health.js(401/403/404 は10分覚える)正確さ
誤読しやすい名前は、辞書で直す
「濱田優貴」を「ハマダユウキ」と読ませるような、58件の読み辞書を持っています。表示は漢字のまま、声にするときだけ読みに置き換えます。
この辞書は Worker と配信スクリプトの2か所に別々にあり、片方だけ直すと誤読が再発した事故(2026-07-15/18)があったので、いまは一致を検査する仕組みが入っています。
content/readings.json(58件)/ops/check-tts-readings-sync.py安全
声は、本人のもの。勝手には使わない
本人がまだ承認していない声は 403 で止まります。同意を撤回したら、その方が新しければ即座に止まります。同意記録が無い古い登録だけは、急に黙らせないために通します(fail-open)。
ここで守っているのは「悪用を全部防ぐ」ことではなく、「本人が登録した声を、本人の同意なしに・撤回後にも使わせない」ことです。
src/voice-gate.js(判定順を1か所に集約)/src/consent.js(同意の版と本文を固定)品質
「音声が返ってきた」を、音声だと思わない
あるとき、上流の別サーバーが /speak に HTML を200で返し、それが音声としてキャッシュされ、2回目以降ずっと無音になりました(2026-10-26 実測)。
いまは中身の先頭バイトを見て、HTMLなら音声として扱いません。Content-Type を信じきらない、という教訓です。
src/audio-sanity.js品質
音声は、途中から再生できなければならない
iPhone の Safari は、数MBを超える音声を「途中からください(Range)」という形で取りに来ます。これに応えないと再生が壊れます。今回のベンチ音声も、この Range 配信に対応させました。
src/index.js の /bench/same-speaker/audio/*(206 Partial Content)公平さ
無料枠は、全サーバーで数える
1台のメモリで数えると、サーバーが増えた分だけ枠が増えてしまいます。日付ごとのカウンタを共有ストレージに置き、全エッジで同じ枠を数えます。超えたら有償の入口へ案内します。
src/index.js の dailyQuota()(匿名10回/日・個人キー100回/日)06測り方と、言えないこと
- 文は14、話者は1人です。話者の違いを除いた代わりに、この話者・この原稿に固有の結果であることは否めません。
- 5指標を同時に見ているので、多重比較の補正はしていません。p値は目安として読んでください。
- ElevenLabs 側の音声は約5か月前(2026-06-03)の eleven_v3 で生成したものです。ElevenLabs の現行フラッグシップは eleven_v4(公式ドキュメント・2026-11-05 確認)なので、最新モデルとの比較ではありません。同条件での作り直しはできていません。
- 帯域(99.9%ロールオフ)は低域の強さに引っぱられる指標です。多言語ベンチでは、KOE は低域が強くこの値が低く出る一方、実録音(VCTK)より高域は残っていると確認しています(/bench の注記)。つまり帯域の差は「高域が欠けている」ことと同義ではありません。
- 自動指標は人の聴感と一致しないことがあります。最終判断はご自分の耳で。音声は聴き比べページで全部再生できます。
まとめると、こうです。
読みの正確さは互角。自然さは既定速度なら互角、速度を揃えると ElevenLabs が上。「人間らしさ」と「高域」は ElevenLabs が上。これは事実として、そのままお伝えします。
でも KOE は、待たせない・止めない・勝手に使わないという別のところに力を置いています。速さと安全は、数字の表には出にくいけれど、毎日使う人には効いてくる部分です。
よかったら、実際に聴いてみてくださいね。