Skip to main content
音響ニューラル コーデック エンジン

音声トークナイザー

OpenAI Whisper、EnCodec、Gemini における音声トークン化、音響フレーム周波数、マルチコード残差ベクトル量子化(RVQ)を探索。

Audio Tokens 0
Duration 0:00.0
Sample Rate 24.0 kHz
Estimated Cost ~$0.0004

Upload or drag & drop an audio file

MP3, WAV, OGG, FLAC, AAC, or WebM. 100% processed locally in your browser.

speech-sample.wav 24kHz Mono
0:00.0 / 0:04.2
Rate: 50 tokens/s

Model Tokenization Specifications

Architecture: Encoder-Decoder Transformer (128-Mel Bins, 50Hz)
Frame Stride / Hop: 20ms (50 acoustic frames/sec)
Target Sample Rate: 16,000 Hz
Chunking Strategy: 30-second fixed context windows

Acoustic Token Segments

Loading audio tokens…
Numeric Token ID Sequence
Numeric token IDs…
音響ニューラルコーデック徹底解説

音声トークン化とニューラルコーデックの仕組み

現代の音声や音楽モデルが、短時間フーリエ変換(STFT)、メルフィルタバンク、残差ベクトル量子化(RVQ)を通じて、高次元の連続波形データを離散的な音声トークンへと圧縮する数学的および信号処理の導出プロセス。

音声信号およびトークン化早見表

音響コーデック設定
生音声サンプリングレート
44,100 Hz
秒間連続サンプル数
Whisper STFTレート
100 Hz
フレーム/秒(ホップ幅10ms)
EnCodecフレームレート
75 Hz
コードブックごとのトークン/秒
メルチャネル数
80 / 128
フィルタバンク周波数ビン
RVQコードブック数
8 - 32
残差量子化段数
目標ビットレート
1.5 - 6 kbps
極めて高い音響忠実度
01

生音声信号の極めて高い次元性の克服

音声波形: x(t) ∈ ℝ

CD品質の音声は1チャネルあたり毎秒44,100サンプルを記録し、毎秒88,200個の連続実数値を生成します。生の音声サンプルをそのまま自己注意層に入力すると、計算量がシーケンス長の2乗に比例するO(N^2)の特性により、GPUメモリが瞬時に枯渇します。

音声データをLLM内で計算可能にするため、エンジニアは以下の基礎的なトークン化アプローチを採用しています:

1. スペクトル特徴量

短時間フーリエ変換により、時系列波形を100フレーム/秒の80チャネル対数メルスペクトログラムへと変換します。

2. 潜在空間エンコーダー

ストライド付き1次元畳み込み層により、生音声を320倍から640倍にダウンサンプリングします。

3. 離散RVQ

多段階コードブックのベクトル量子化により、連続潜在ベクトルを整数のトークンID配列へとマッピングします。

圧縮係数の原理 ステップ 1
比率 = サンプルレート / トークンレート
生サンプル数 / 秒: 24,000 サンプル
トークン数 / 秒 (EnCodec): 75 トークン
圧縮係数: シーケンス長を320倍圧縮
数分間に及ぶ連続音声を標準的な128kコンテキストウィンドウ内に収容可能にします。
02

メル尺度と残差ベクトル量子化(RVQ)の数学的基礎

RVQ: q_k = argmin ||r_k - c||^2

人間の聴覚系は音の周波数を対数的に知覚し、低音域の微小な差異を高精度に識別する一方で、高音域を粗い知覚帯域として知覚します:

1. メル尺度への変換:

関係式 m = 2595 · log10(1 + f / 700) を用いて、線形のヘルツ周波数を人間の聴覚特性に即した帯域に変換します。

2. 短時間フーリエ変換(STFT):

移動窓を適用したフーリエ変換により、連続波形を時間と周波数のスペクトログラムに変換します。

3. 残差ベクトル量子化(RVQ):

複数のコードブックが近似残差 r_k を段階的に量子化することで、少数のトークンで音色や抑揚を精緻に保持します。

RVQ残差イテレーション ステップ 2
q_1 = argmin_c ||z - c_1||^2
r_1 = z - q_1 → q_2 = argmin_c ||r_1 - c_2||^2
コードブック要素数: 1,024 ベクトル (10 ビット)
標準量子化段数 K: 8 から 32 コードブック
75Hzでのビットレート: 6 kbps (75 × 8 × 10 bps)
03

時間周波数ウィンドウィングとSTFTの動作機構

STFT: 窓幅 = 25ms, ホップ幅 = 10ms

Whisperなどの音声認識プラットフォームや音声トランスフォーマーでは、スペクトル計算を行う前に、境界でのスペクトル漏れを防ぐためハン窓関数(Hann window)を適用します:

窓幅 (25ms):

16kHzサンプリングの場合、25ミリ秒の窓は400サンプルの音声を切り出し、人間の声道の音響分析に最適な解像度を提供します。

ホップ幅 (10ms):

10ミリ秒ごとに窓をスライドさせることで、隣接フレーム同士に60%の重複を持たせ、毎秒100枚のスペクトルフレームを生成します。

スペクトル次元算定規則 ステップ 3
フレーム数 = floor((サンプル数 - N_fft) / ホップ幅) + 1
Whisperでの30秒音声: 480,000 サンプル
スペクトログラム形状: 80 チャネル × 3,000 フレーム
エンコーダーによる圧縮: 1,500 トークンへと圧縮
04

ニューラル音声コーデックのアーキテクチャ比較

コーデックベンチマーク
コーデックアーキテクチャ 入力サンプリングレート フレームレート RVQコードブック数 目標ビットレート 主な用途
Meta EnCodec 24 kHz / 48 kHz 75 Hz 8 - 32 コードブック 1.5, 3, 6, 12 kbps AudioCraftでの音声および音楽生成
Descript DAC 44.1 kHz 86 Hz 9 コードブック 8 kbps 高忠実度音楽およびナレーション生成
Google SoundStream 24 kHz 50 Hz 3 - 8 コードブック 3 - 6 kbps 低遅延リアルタイム音声通話
OpenAI Whisper 16 kHz 100 Hz (STFT) なし(連続メル特徴量) 80 チャネル 音声認識および多言語文字起こし
05

本番環境向け実装コード: Torchaudioによるメルスペクトログラム

実行環境: Python 3.10+
audio_spectrogram.py torchaudio transforms
import torch
import torchaudio.transforms as T

def generate_whisper_mel_spectrogram(waveform: torch.Tensor, sample_rate: int = 16000):
    mel_transform = T.MelSpectrogram(
        sample_rate=sample_rate,
        n_fft=400,
        win_length=400,
        hop_length=160,
        n_mels=80,
        power=2.0
    )
    mel_spec = mel_transform(waveform)
    log_mel_spec = torch.log(torch.clamp(mel_spec, min=1e-5))
    print(f"Log-Mel Spectrogram Shape: {log_mel_spec.shape}")
    return log_mel_spec

# 16kHzで3秒分のダミー音声を生成
dummy_audio = torch.randn(1, 16000 * 3)
generate_whisper_mel_spectrogram(dummy_audio)
06

オーディオエンジニアリングFAQ

ニューラルオーディオ

なぜRVQは巨大な単一コードブックではなく複数のコードブックを使用するのですか?

多様な音響情報を単一のコードブックで表現するには2の80乗個のベクトルが必要となり、計算およびメモリの観点から実現不可能です。10ビットのコードブックを8段積み重ねることで、わずか8,192個の保存ベクトルで同等の表現力を達成できます。

セマンティック音声トークンと音響音声トークンの違いは何ですか?

HuBERTやw2v-BERTが生成するセマンティックトークンは、声のトーンや環境ノイズを排除して純粋な言語的意味を抽出します。一方、EnCodecやDACなどの音響トークンは、話者の声質、感情の抑揚、部屋の残響特性まで忠実に保持します。

なぜ音声認識では16kHzサンプリングが標準として多用されるのですか?

ナイキストの標本化定理により、16kHzのサンプリングレートは8kHzまでの周波数成分を完全に再現できます。人間の日常会話における主要なフォルマント周波数は4kHz未満に集中しているため、16kHzを採用することで不要な高周波計算を省きつつ十分な明瞭度を確保できます。

最新のフロンティアOmniモデルはどのようにリアルタイムで音声を合成していますか?

最新モデルは、テキストトークンと並行してRVQコードブックのインデックスを自己回帰的に予測します。生成された離散コードは軽量な畳み込みデコーダーに渡され、一般的なGPU上で数ミリ秒以内に連続波形へと逆変換されます。

重要なアーキテクチャの要点

ニューラル音声トークン化は、畳み込みエンコーダーと多段階の残差ベクトル量子化により、連続音声信号の膨大な情報密度を劇的に削減します。毎秒44,100個の連続サンプルを100個未満の離散トークンへと凝縮することで、トランスフォーマーは極めて低い遅延で自然な抑揚の音声を理解および生成することが可能になります。

matrix