同じ録音から高域や低域を取り除くだけで、声の分析スコアはどれほど変わるのでしょうか。公開日本語音声コーパスJVSの98人を対象に、音声練習ツールKoenamiの測定エンジンと判定軸を固定し、加工前後を比較しました。約4 kHzまでの帯域制限では、基本周波数がほぼ変わらない組でも、共鳴の推定値と総合スコアが大きく動きました。
図1(冒頭画像):帯域制限と声の分析を表す概念イメージ。画像生成による模式表現で、実測グラフではありません。
今回、公開音声で確認できたこと
- 16→8→16 kHzの再標本化では、女性ラベルの有効32組でスコア変化の中央値が−28.9ポイントでした。
- 同じ32組のF0の相対変化の中央値は約−0.0018%。元が「女声的」区分だった30組のうち、17組が「中間」区分へ移りました。
- 300〜3,400 Hzの帯域通過条件では、女性ラベルの有効35組でスコア変化の中央値が−48.2ポイントでした。男性ラベルの組でもスコアは動きました。
- これは帯域制限に対する分析結果の感度を調べた実験です。実際の電話コーデックの再現試験や、加工後の声を人がどう聞くかの試験は実施していません。
以下の「女性ラベル」「男性ラベル」はJVSの公開メタデータに基づく参照群を指します。「女声的」「男声的」「中間」はKoenamiの表示区分です。これらを話者の属性や本人の認識を確定する情報として扱うことはできません。本記事の実測値は公開コーパスの音声だけから得ています。
1.「通話品質」を帯域に分解する
音声ファイルのサンプリング周波数と、そこに残っている声の周波数帯域は別のものです。たとえば8 kHzで標本化した信号は4 kHz以上の周波数成分をそのまま保持できません。それを16 kHzや48 kHzへ変換して保存しても、失われた成分が復元されるわけではありません。
古典的な電話帯域としてよく用いられる目安が300〜3,400 Hzです。ITU-Tの電話端末に関する勧告にも、この帯域を扱う仕様があります。一方、通話方式によってはさらに広い帯域を扱います。「通話はすべて300〜3,400 Hz」と一括りにはできません。今回は狭帯域を考えるための比較条件として、この数値を使いました。[ITU-T P.310]
実際の通話音声には、帯域制限に加えてコーデック、マイク、ノイズ抑制、エコー処理、音量制御、パケット損失、録音経路などが関わりえます。そのすべてを一度に変えると、どの要因が分析値を動かしたのか判断しにくくなります。そこで今回の実験では、公開録音に線形な帯域制限だけを加えました。

2.同じ音声を3条件で比較する
使用したのは、公開コーパスJVSの通常読み上げ音声
JVSは100人のプロフェッショナル話者を含む日本語音声コーパスで、通常読み上げ、ささやき、裏声などが用意されています。今回のローカル参照ライブラリーは通常読み上げ5,000クリップです。Koenamiの代表音声選択処理により、利用可能な98人から1人1クリップを選びました。女性ラベル49人、男性ラベル49人です。98人という人数はこの参照ライブラリーの選択結果であり、JVS全体が98人という意味ではありません。[JVS公式説明] [コーパス論文]
代表クリップは、各話者のF0と共鳴指標ΔFの中央値に近いものを選ぶKoenamiのrepresentatives()に従いました。今回の結果を見て都合のよいクリップへ差し替える処理はしていません。加工前後では同じ話者の同じ録音を使います。ただし、全話者が同じ文章を読んでいる実験ではありません。[代表音声の選択処理]
| 条件 | 処理 | 確認したいこと |
|---|---|---|
| 加工前 | モノラル化し、SciPyのpolyphase再標本化で16 kHzへ統一 | 同じ保存・測定経路を通す基準値 |
| 16→8→16 kHz | 8 kHzへ落とし、16 kHzへ戻す。低域を切る処理は追加しない | 主に約4 kHz以上を失う影響 |
| 300〜3,400 Hz | Butterworth帯域通過フィルターを前後方向に適用 | 低域と高域を制限する影響 |
3条件とも16 kHzの浮動小数点WAVとして保存し、同じKoenami測定エンジン4.1.0で測りました。追加のピッチ変更、時間伸縮、音量正規化、AIによる音質補正、コーデック圧縮は行っていません。フィルターによって信号の成分が減れば、その分だけ振幅やエネルギーは変わります。
参照集合とスコアの判定軸も、3条件を通じて固定しました。加工後の声から基準を作り直すと、測定値の変化と基準そのものの変化が混ざるためです。また、保存済みの参照特徴量をそのまま加工前の値に流用せず、加工前の音声も今回の統一した経路で測り直しています。
3.Koenamiのスコアは何を見ているか
今回使ったKoenamiのスコアversion 2は、F0だけを閾値で分ける仕組みではありません。次の5指標を標準化し、参照群を対比する軸へ投影します。F0は半音尺度へ変換されます。参照群内のばらつきも用いるため、単純な平均値の足し算ではありません。[音響空間の計算]
- F0:基本周波数。声の高さに関わる周期性の指標です。
- ΔF:推定したフォルマントF1〜F4から求める共鳴指標です。
- HNR:周期的な成分と雑音的な成分の関係を表す指標です。
- balance:スペクトルの高低のエネルギーバランスです。
- pitch_span:F0の10〜90パーセンタイル間を半音単位で表した幅です。
軸上では、男性ラベル参照群の中央値が−50、女性ラベル参照群の中央値が+50になるようにスケールを定め、その中点を0とします。表示時には−100〜+100へ制限して整数へ丸め、その表示値が+30以上なら「女声的」、−30以下なら「男声的」、その間なら「中間」となります。+50を「女性である確率50%」と解釈することはできません。本記事の数値表と実測グラフでは、丸める前のスコアを集計し、区分の移動だけを表示規則に従って数えています。[スコアと表示区分の実装]
4.公開98人の実測結果
以下は、加工前と加工後の両方で品質条件を通過した同一話者の組を集計した結果です。女性ラベルの有効組数は条件によって32組と35組、男性ラベルは各48組でした。除外した組を含む全294行は、末尾のCSVで確認できます。
| 参照群 | 加工条件 | 有効組数 | 加工前の中央値 | 加工後の中央値 | 話者ごとの変化の中央値 |
|---|---|---|---|---|---|
| 女性ラベル | 16→8→16 kHz | 32 | +51.6 | +21.5 | −28.9 |
| 女性ラベル | 300〜3,400 Hz | 35 | +51.0 | +0.04 | −48.2 |
| 男性ラベル | 16→8→16 kHz | 48 | −49.9 | −64.4 | −12.7 |
| 男性ラベル | 300〜3,400 Hz | 48 | −49.9 | −70.1 | −24.7 |
「話者ごとの変化の中央値」は、各話者の加工後−加工前を計算してから中央値を取ったものです。表の2つの中央値を引いた値とは一般に一致しません。条件ごとに有効な話者集合が違うため、列間の差をそのままフィルター同士の効果差とみなすこともできません。

表示区分はどれくらい移ったか
女性ラベルの16→8→16 kHz条件では、有効32組のうち加工前に「女声的」だったのが30組。そのうち17組が「中間」へ移りました。300〜3,400 Hz条件では、有効35組のうち加工前に「女声的」だった32組のうち30組が「中間」へ移りました。いずれも、この有効組の中で「女声的」から「男声的」へ直接移った例は0組でした。
男性ラベル側でも、表示区分が変わったのは16→8→16 kHz条件で6組、300〜3,400 Hz条件で10組ありました。全体としてスコアが負方向へ動いた一方、図の個々の線を見ると例外もあります。「帯域を狭めると、どの音声も一定量だけ下がる」とする補正式は、この結果からは作れません。
5.F0が同じでも判定が動く理由
音高の推定と、共鳴の推定は別の処理
女性ラベルの16→8→16 kHz条件の有効32組では、各話者のF0の相対変化の中央値が約−0.0018%でした。一方、ΔFの変化の中央値は−196.1 Hzです。この組では、F0がほぼ保たれたまま、共鳴の推定値が動いていました。ただし、中央値が小さいことは、全員のF0が完全に同じだったことを意味しません。

KoenamiのΔFは、各フレームで (F1/0.5 + F2/1.5 + F3/2.5 + F4/3.5) / 4 を計算し、採用されたフレームで平均する指標です。測定ではBurg法によるフォルマント推定を使います。高域の手がかりを取り除くと、この推定器へ入るスペクトルが変わります。したがって、失われた高域を含む元の音声と同じ精度でF1〜F4を復元できるとは限りません。[測定エンジンの実装]
今回のΔF低下と総合スコア低下は、この説明と整合します。ただし、5指標が同時に変わっているため、総合スコアの変化をすべてΔFだけの因果効果として割り当てることはしていません。高低のエネルギーバランスやHNRも帯域制限の影響を受ける可能性があります。
なぜ共鳴推定が下がったのか:失われた高域と推定器の前提
同じ32組を詳しく見ると、加工前のF4の要約値が4,000 Hzを超えていたのは28組でした。F4の群内中央値は加工前4,245.0 Hz、加工後3,365.4 Hzで、話者ごとの差の中央値は−869.9 Hzでした。F3も話者ごとの差の中央値で−548.4 Hz、F2は−220.9 Hz、F1は−52.4 Hzと動いています。高いフォルマントだけを消して、残りをそのまま保てたという結果ではありません。
Burg法によるLPC分析は、短い区間のスペクトルをモデルで近似してフォルマントを推定します。Praatの公式解説でも、探索上限やスペクトルの傾きによって、声道共鳴に対応しない推定成分が生じることが説明されています。Koenamiのこの版は5つのフォルマントを探索し、主解析の上限は5,500 Hz、比較用は5,000 Hzです。入力の高域を約4 kHzや3.4 kHzまで削っても、この解析設定は元のままです。[Praat:Burg法の説明]
考えられる機序は、帯域制限で元の共鳴を見分ける手がかりが失われ、残ったスペクトルやフィルターの傾きを推定器が別の共鳴配置として近似することです。さらに、Koenamiは推定周波数や帯域幅が条件を満たしたフレームだけをΔFの集計に採用するため、加工によって集計対象のフレームも変わりえます。今回の観測はこの説明と整合しますが、LPCの各極と元の共鳴との対応をフレームごとに追ったわけではなく、誤対応とフレーム選別のどちらがどれだけ支配的かまでは確定していません。
F1〜F4の要約値はフレーム中央値、ΔFは各フレームで計算した値の平均です。上記の要約フォルマントをΔFの式に代入しても、測定されたΔFを厳密には再構成できません。
なぜスコアが下がったのか:判定式の内訳は数式で確かめられる
測定器の内部で何が起きたかとは別に、得られた5指標がスコア差へどう反映されたかは検算できます。参照集合を固定すると、この版の丸め前スコアは、F0を半音へ変換した後の5指標に対して線形です。今回の参照集合では、加工前後の差は次のように分解できます。
スコア差 ≈ 6.8193 × 12 log2(F0後 / F0前)
+ 0.1511 × (ΔF後 − ΔF前)
+ 1.9704 × (HNR後 − HNR前)
− 1.8991 × (balance後 − balance前)
− 1.8035 × (pitch_span後 − pitch_span前)
F0の項は半音、ΔFはHz、HNRとbalanceはdB、pitch_spanは半音を使います。上の係数は読みやすく丸めた値です。計算では丸める前の係数を用い、有効な全163組で5項の和が実際のスコア差と10−8ポイント以内で一致することを確認しました。係数は参照集合に依存し、他の音声ライブラリーにもそのまま使える値ではありません。
| 条件 | F0項 | ΔF項 | HNR項 | balance項 | pitch_span項 | 合計 |
|---|---|---|---|---|---|---|
| 16→8→16 kHz・32組 | −0.07 | −27.33 | +0.62 | +0.19 | −0.01 | −26.60 |
| 300〜3,400 Hz・35組 | +5.63 | −39.34 | −1.83 | −9.64 | −2.47 | −47.66 |
加算できる内訳を示すため、この表と図5には平均を使っています。前節の主要結果は中央値です。丸めによる端数差があります。
約4 kHzまでの条件では、平均のスコア低下−26.60ポイントに対してΔF項が−27.33ポイントで、残りの項が少し相殺していました。この条件のスコア低下は、判定式の上では主にΔFの推定変化で説明できます。300〜3,400 Hz条件ではΔF項に加えてbalance項も大きく、F0項はむしろ正方向へ働いていました。
balanceは、この版では1,000〜4,000 Hzのエネルギーと100〜1,000 Hzのエネルギーの比をdBで表します。300 Hz未満を削ると分母側が減り、比が増える場合があります。この参照集合のbalance係数は負なので、比の増加が負方向のスコア差として現れます。係数の符号は他の特徴との相関も含めて決まったもので、「高域が多ければ普遍的に男声的」といった独立した音声法則を表すものではありません。

つまり、今回の「なぜ」は二段階に分けて説明できます。まず帯域制限により、共鳴などの測定値が変わりました。その変化を、通常読み上げ音声から作った固定の判定軸がスコア差として取り込みました。録音経路によって変わった手がかりと、発声によって変わった手がかりを、このスコアだけで識別する仕組みにはなっていないことが、条件をまたいだ比較を難しくしています。
低域まで切ると、F0推定も動いた
300〜3,400 Hz条件では、有効組のF0の相対変化の中央値は女性ラベルで+4.05%、男性ラベルで+7.92%でした。ピッチ変更処理を加えていなくても、推定されたF0まで完全に一定とは限りません。基本周波数付近を減衰させても倍音の並びから周期を推定できる場合はありますが、信号の変化によって追跡結果が変わる場合もあります。今回の数値を「帯域制限で話者が高い声を出した」と解釈するのは不適切です。
遠隔録音に関するZhangらの研究でも、基本周波数とフォルマントで録音方式の影響が異なることが報告されています。ただし、その研究の比較対象はZoom会議アプリ、外部マイク付きレコーダー、スマートフォンのロスレス録音アプリです。スマートフォンの通話回線を直接比較した研究として引用しているわけではありません。[Zhangほか、2021]
6.品質条件を通っても残る問題
Koenamiは、十分な有声音があるか、安定して共鳴を推定できる区間があるか、クリッピングが少ないか、解析設定を変えたときの共鳴推定が大きく揺れないかを確認します。今回も、元の実装にある条件を使いました。
- 有声区間:1秒以上
- フォルマントを採用できた区間:0.35秒以上
- クリッピングの割合:0.5%以下
- 共鳴推定の設定感度:12%以下
これらは不安定な測定を止めるための条件です。十分な高域が残っているかを直接検査する条件は、この版のゲートにはありません。設定を変えても似た推定値になったとしても、帯域を削る前の正しい値に近いとは限りません。設定間の安定性と、録音経路をまたぐ一致は別々に確認する必要があります。[品質ゲートの実装]
| 参照群・条件 | 候補 | 加工前で不通過 | 加工後で不通過 | 両方通過 |
|---|---|---|---|---|
| 女性・16→8→16 kHz | 49 | 14 | 3 | 32 |
| 女性・300〜3,400 Hz | 49 | 14 | 0 | 35 |
| 男性・16→8→16 kHz | 49 | 0 | 1 | 48 |
| 男性・300〜3,400 Hz | 49 | 0 | 1 | 48 |
加工前後の不通過には同じ組が重複して含まれる場合があります。2つの不通過数を単純に足して候補数から引くことはできません。
女性ラベルの加工前14組は共鳴の設定感度で不通過でした。代表音声の選択に使った保存特徴量と、今回統一した再標本化経路で測り直した特徴量は完全に同一ではありません。そこで、選択時に有効だったことを理由に不通過を無視せず、今回の加工前後の測定で判定しています。
さらに、女性ラベルの300〜3,400 Hz条件では加工後の49組すべてが品質ゲートを通った一方、加工前に通ったのは35組でした。ゲートを通る人数が増えたことだけで、加工後の測定が元の声をより正確に表したとはいえません。今回の表は前後とも通った組に限定していますが、この選別による偏りは残ります。
7.今回わかった範囲と、確かめていない範囲
言えること
この公開参照集合と固定したKoenamiの実装では、同一録音への帯域制限だけで、共鳴推定値・総合スコア・表示区分が変わりました。したがって、異なる録音経路で得たスコアの差を、そのまま発声の変化として解釈することには注意が必要です。
この実験だけでは言えないこと
- 実際の通話すべてで同じ変化が起きるか:特定コーデック、端末、アプリ、回線の再現はしていません。300〜3,400 Hzフィルターも通信規格に適合する電話機モデルではありません。
- 人の聞こえ方が同じ方向へ変わるか:加工後音声の聴取実験を実施していません。表示区分の移動と聴覚的な印象の変化は同義ではありません。
- 未知の話者に対する判定精度:判定軸の参照に使った話者を、そのまま感度試験にも使っています。独立したテスト集合による精度評価ではありません。
- すべての発話での再現性:1人1クリップの通常読み上げであり、自由会話、感情的な発話、ささやき、歌声、裏声へそのまま一般化できません。
- 帯域を戻せば正しい判定になるか:アップサンプリングだけで情報は戻りません。AI補完した高域も、実際に発声された成分と同じである保証はありません。
今後、録音経路をまたぐ比較を確かめるには、同じ発話を基準マイクと通話経路で同時収録し、独立した話者群でも分析し、人による聴取評価も別に行う必要があります。アプリ側の対策候補としては、帯域不足の検出、帯域を揃えた参照集合、狭帯域入力での区分表示の保留などが考えられます。今回これらの対策の効果までは検証していません。
8.再現条件・公開データ
測定エンジンは4.1.0、スコアはversion 2、確認したソースのコミットはfad14a1b9a0941cc46a40a7fc49b83a21e0da953です。音声加工にはSciPy 1.18.1、NumPy 2.5.3、SoundFile 0.14.0を使いました。代表クリップのID、条件ごとの5指標、丸め前・表示スコア、品質条件の通過状態を公開します。
- 公開音声98人×3条件の測定結果CSV(294行)
- 条件・集計結果JSON
- 全163組の数式分解と係数JSON
- F1〜F4の追加確認データJSON(女性ラベル・有効32組)
- 音声加工と再測定用Pythonスクリプト
- 固定参照での再採点用TypeScriptスクリプト
- 再現手順とライセンス情報
JVS音声そのものは添付していません。入手と利用はコーパスの公式条件に従ってください。公開CSVの群ラベルはJVSのタグ情報に基づきます。タグの出典を明記し、この測定データと集計JSONはCC BY-SA 4.0で提供します。
帯域制限の中心となる処理
from scipy import signal
# x: 16 kHz・モノラルの浮動小数点信号
down = signal.resample_poly(x, 1, 2)
roundtrip = signal.resample_poly(down, 2, 1)[:len(x)]
sos = signal.butter(
8, [300, 3400], btype="bandpass", fs=16000, output="sos"
)
bandlimited = signal.sosfiltfilt(sos, x)
再標本化はresample_polyの標準設定(Kaiser窓、β=5)です。8 kHzへの変換は約4 kHzを境に減衰するFIR処理で、理想的な垂直の遮断特性ではありません。[SciPy:resample_poly]
butterの引数N=8は帯域通過変換前の次数を指定し、この帯域通過フィルター自体は16次になります。さらにsosfiltfiltで前後方向へ適用するため、合成の振幅応答は片方向応答の二乗になります。これはオフラインのゼロ位相処理で、実時間の電話伝送を模擬するものではありません。[SciPy:butter] [SciPy:sosfiltfilt]
まとめ:録音経路も測定条件の一部です
公開音声を使った今回の比較では、声の出し方を変えなくても、帯域を制限するだけでKoenamiの分析値と表示区分が変わりました。特に、F0がほぼ保たれた条件でも共鳴指標と総合スコアが動いた点は、音高だけを確認して録音条件の影響を判断できないことを示しています。
スコアを発声練習の変化として読むには、同じマイク、同じ録音経路、同じ処理条件で比較することが出発点になります。通話音声とローカル録音など条件が異なる数値を比べる場合は、声そのものの変化と、測定に残った手がかりの変化を分けて確かめる必要があります。
音声加工・測定:2026年10月15日。数式分解・考察追記:2026年10月16日。図1・図2はgptimage2による生成画像、図3〜図5は公開音声の実測値に基づきMatplotlibで作図したものです。外部サービスの現在の判定挙動を保証する記事ではなく、記載したローカル実装と参照集合についての検証記録です。