Whisperの音声要件:対応フォーマットと仕様の完全ガイド

Whisperの音声要件:対応フォーマットと仕様の完全ガイド

Eric King

Eric King

Author


Whisperの音声要件を理解することは、最高の文字起こし精度を得るうえで重要です。Whisperは柔軟で多くの形式に対応しますが、最適な仕様に沿うことで性能を最大限に引き出せます。
本ガイドでは、音声要件、対応フォーマット、技術仕様、Whisper向けに音声ファイルを準備するベストプラクティスを網羅します。

対応音声フォーマット

WhisperはFFmpegを通じて幅広い音声・動画形式に対応しています。一覧は次のとおりです。

音声フォーマット

フォーマット拡張子メモ
WAV.wav✅ 推奨、ロスレス
MP3.mp3✅ 最も一般的
FLAC.flac✅ ロスレス、圧縮効率良好
M4A.m4a✅ Apple形式、AACコーデック
AAC.aac✅ 高品質圧縮
OGG.ogg✅ オープンソース
OPUS.opus✅ 低遅延、Web向き
WMA.wma⚠️ あまり一般的でない
AMR.amr⚠️ 低品質、通話録音向け

動画フォーマット(音声抽出)

フォーマット拡張子メモ
MP4.mp4✅ 最も一般的な動画形式
AVI.avi✅ 旧形式だが対応
MKV.mkv✅ コンテナ
MOV.mov✅ QuickTime
WebM.webm✅ Web動画
FLV.flv⚠️ 旧Flash形式
重要: Whisperは動画から自動で音声を抽出するため、動画ファイルをそのままアップロードできます。

サンプルレート要件

最適サンプルレート:16 kHz

Whisperは処理前にすべての音声を内部で16 kHzモノラルにリサンプリングします。音声認識に最適なサンプルレートです。

対応サンプルレート

Whisperは任意のサンプルレートを受け付けますが、次の点に留意してください。
入力サンプルレートWhisperでの処理推奨
8 kHz16 kHzにリサンプル✅ 通話、許容範囲
16 kHzそのまま使用最適、リサンプル不要
22.05 kHz16 kHzにリサンプル✅ 良好な品質
44.1 kHz16 kHzにリサンプル✅ CD品質、問題なし
48 kHz16 kHzにリサンプル✅ プロ用途、問題なし
96 kHz16 kHzにリサンプル⚠️ 過剰、ファイルが大きい
要点: より高いサンプルレートがWhisperの精度を上げるわけではありません。モデルは16 kHzで学習されているため、16 kHz入力は不要なリサンプルとファイル肥大を避けられます。

ベストプラクティス

# Convert audio to 16 kHz before processing (optional optimization)
import ffmpeg

def convert_to_16khz(input_file, output_file):
    stream = ffmpeg.input(input_file)
    stream = ffmpeg.output(
        stream,
        output_file,
        acodec='pcm_s16le',
        ac=1,  # Mono
        ar=16000  # 16 kHz
    )
    ffmpeg.run(stream, overwrite_output=True)

ビット深度要件

対応ビット深度

ビット深度状態メモ
8ビット✅ 対応低品質、非推奨
16ビット推奨標準で十分
24ビット✅ 対応プロ向け、ファイル大
32ビット浮動小数✅ 対応スタジオ品質、過剰な場合も
推奨: 16ビットPCMが標準であり、音声認識には十分な品質です。より深いビット深度は文字起こし精度を向上させません。

チャンネル構成:モノラルとステレオ

モノラル(推奨)

Whisperは内部でモノラルとして処理するため、モノラル入力が最適です。
利点:
  • ファイルサイズが小さい
  • 処理が速い
  • チャンネル混合が不要
  • 単一話者向き
モノラルを使う例:
  • 1人の話者の録音
  • 電話
  • 1人ホストのポッドキャスト
  • 多くの文字起こしタスク

ステレオ(対応)

ステレオは自動的にモノラルへ変換されます(平均化または1チャンネル選択)。
ステレオが有用な場合:
  • 話者が左右に分かれている(稀)
  • 元がステレオ(変換は自動)
ベストプラクティス: 可能なら処理前にステレオをモノラルへ変換:
import ffmpeg

# Convert stereo to mono
stream = ffmpeg.input('stereo_audio.wav')
stream = ffmpeg.output(
    stream,
    'mono_audio.wav',
    ac=1  # Mono channel
)
ffmpeg.run(stream, overwrite_output=True)

ファイルサイズの上限

実用上の目安

Whisperに厳密な上限はありませんが、実務上の制約があります。
ファイルサイズ処理時間推奨
10 MB未満数秒✅ 理想的
10〜100 MB数分✅ 良好
100〜500 MB10〜30分⚠️ 分割を検討
500 MB超30分以上⚠️ 分割必須

メモリ

大きなファイルほどRAM/VRAMを多く消費します。
  • baseモデル: 約1〜2 GB VRAM
  • smallモデル: 約2〜3 GB VRAM
  • mediumモデル: 約5〜6 GB VRAM
  • largeモデル: 約10〜12 GB VRAM
ベストプラクティス: 100 MB超のファイルはチャンク分割(下記参照)。

長さの上限

推奨時間

長さ状態メモ
30分未満✅ 最適そのまま処理
30〜60分✅ 良好分割が必要な場合あり
1〜2時間⚠️ 分割推奨チャンクの方が精度が良いことが多い
2時間超⚠️ 分割必須安定性のため

長い音声を分割する理由

  1. メモリ制限: メモリ不足エラーを防ぐ
  2. 精度: 短いチャンクの方が文脈を保ちやすい
  3. 速度: 並列処理が可能
  4. 復旧: 1チャンクが失敗しても他は成功しうる
チャンク戦略:
# Split long audio into 30-60 second chunks with 5-10 second overlap
def chunk_audio(audio_path, chunk_length=60, overlap=5):
    # Implementation: split audio into segments
    # Process each chunk separately
    # Merge results with timestamps
    pass

音質要件

最低基準

許容できる精度のため、次を満たすことが望ましいです。
要因最低最適
S/N比10 dB超20 dB超
ビットレート(MP3)≥ 64 kbps≥ 128 kbps
音量聞こえる−3 dBに正規化
背景ノイズ最小なし
エコー/残響最小なし

品質チェックリスト

文字起こし前に確認:
  • 明瞭な発話: 話者の声がはっきり聞こえる
  • ノイズ最小: 背景が音声をかき消さない
  • 音量一定: 急な変化がない
  • クリッピングなし: 歪み・飽和なし
  • 良いマイク: 適切な機材

コーデック要件

推奨コーデック

コーデックフォーマット品質推奨
PCMWAVロスレス精度に最適
FLACFLACロスレス✅ 優秀、圧縮あり
AACM4A、MP4高品質✅ 非常に良い
MP3MP3ロッシー✅ ≥128 kbpsで良好
OGG VorbisOGGロッシー✅ 良好
OPUSOPUSロッシー✅ 良好、低遅延

コーデックのベストプラクティス

最大精度のために:
  • PCM(WAV)またはFLAC(ロスレス)
実用向け:
  • AACまたはMP3 ≥128 kbps(結果は非常に良い)
避ける:
  • 極端に低いMP3ビットレート(64 kbps未満)
  • 強く圧縮された形式
  • 必要でない限り電話コーデック(AMR、G.711)

前処理の推奨

文字起こしの前に

Whisperは多くを自動で補正しますが、前処理で改善できます。

1. 音量の正規化

import numpy as np
from scipy.io import wavfile

def normalize_audio(audio_path, output_path, target_dB=-3.0):
    sr, audio = wavfile.read(audio_path)
    audio = audio.astype(np.float32)
    
    # Normalize to target dB
    max_val = np.max(np.abs(audio))
    target_linear = 10 ** (target_dB / 20)
    audio = audio * (target_linear / max_val)
    
    # Clip to prevent overflow
    audio = np.clip(audio, -1.0, 1.0)
    
    wavfile.write(output_path, sr, (audio * 32767).astype(np.int16))

2. 無音の除去

# Remove leading/trailing silence
# Helps with processing time and accuracy

3. ノイズ低減(任意)

ノイズの多い録音向け:
# Use noise reduction libraries
# librosa, noisereduce, or specialized tools
# Only if background noise is significant

4. 16 kHzへリサンプル(任意)

ファイルサイズ最適化のため:
import ffmpeg

stream = ffmpeg.input('input.wav')
stream = ffmpeg.output(
    stream,
    'output_16k.wav',
    ar=16000  # Resample to 16 kHz
)
ffmpeg.run(stream, overwrite_output=True)

よくある音声の問題と対処

問題1:サンプルレートが非常に低い(8 kHz)

問題: 8 kHzの通話録音は精度が落ちることがあります。
対処:
  • mediumまたはlargeモデルを使う(低サンプルレートに強い)
  • 16 kHzにアップサンプル(品質は戻らないが処理には有利)

問題2:話者が左右に分かれたステレオ

問題: 2人が別チャンネルにいる。
対処:
# Extract each channel separately
import torchaudio

audio, sr = torchaudio.load('stereo.wav')
speaker1 = audio[0]  # Left channel
speaker2 = audio[1]  # Right channel

# Transcribe each separately
result1 = model.transcribe(speaker1)
result2 = model.transcribe(speaker2)

問題3:可変ビットレートMP3

問題: VBRが一部ツールで問題になることがある。
対処:
  • 固定ビットレート(CBR)またはWAVへ変換
  • WhisperはVBRも処理できるが、CBRの方が予測しやすい

問題4:破損した音声ファイル

問題: 再生はできるがWhisperが失敗する。
対処:
# Re-encode the file
import ffmpeg

stream = ffmpeg.input('corrupted.mp3')
stream = ffmpeg.output(
    stream,
    'fixed.wav',
    acodec='pcm_s16le'
)
ffmpeg.run(stream, overwrite_output=True)

問題5:非常に長いファイル

問題: メモリ不足または極端に遅い。
対処:
  • 30〜60秒のチャンクに分割
  • 逐次または並列処理
  • タイムスタンプで結果を結合

用途別の推奨

電話

パラメータ理由
サンプルレート8〜16 kHz通話品質
フォーマットWAVまたはMP3一般的
ビットレート≥ 64 kbpsコーデック品質
チャンネルモノラル通話の標準

会議(Zoom、Teams)

パラメータ理由
サンプルレート16〜48 kHz高品質
フォーマットMP4(音声抽出)動画形式
ビットレート≥ 128 kbps良好な品質
チャンネルモノまたはステレオ構成による

ポッドキャスト

パラメータ理由
サンプルレート44.1〜48 kHzプロ品質
フォーマットMP3、WAV、M4A一般的
ビットレート≥ 128 kbps良好
チャンネルモノラル標準

インタビュー

パラメータ理由
サンプルレート16〜48 kHz高品質
フォーマットWAVまたはFLAC最高精度
ビットレートロスレスまたは≥192 kbpsプロ向け
チャンネルモノラル標準

Whisper音声要件のまとめ

最低要件

  • フォーマット: FFmpeg対応の任意の形式
  • サンプルレート: 任意(最低8 kHz推奨)
  • ビット深度: 8ビット以上
  • チャンネル: モノまたはステレオ(モノ推奨)
  • ファイルサイズ: 厳密な上限なし(100 MB超は分割)
  • 長さ: 厳密な上限なし(1時間超は分割)

最適要件

  • フォーマット: WAV、FLAC、MP3(≥128 kbps)
  • サンプルレート: 16 kHz(最適、リサンプル不要)
  • ビット深度: 16ビットPCM
  • チャンネル: モノラル
  • 品質: 明瞭な発話、ノイズ最小
  • 前処理: 正規化音量、クリッピングなし

クイックリファレンス:準備チェックリスト

Whisperで文字起こしする前:
  • フォーマット: WAV、MP3、FLAC、M4Aなど対応形式
  • サンプルレート: 16 kHz(最適)または他の対応レート
  • ビット深度: 16ビット(推奨)
  • チャンネル: モノ(推奨)またはステレオ
  • ファイルサイズ: 100 MB未満(または分割計画)
  • 長さ: 1時間未満(または分割計画)
  • 品質: 明瞭な発話、背景ノイズ最小
  • 音量: 正規化、クリッピングなし
  • コーデック: ロスレス(WAV/FLAC)または高品質ロッシー(MP3 ≥128 kbps)

音声のテスト

簡易テスト

import whisper

# Load model
model = whisper.load_model("base")

# Test transcription
result = model.transcribe("your_audio.wav")

# Check if successful
if result["text"]:
    print("✅ Audio format is compatible")
    print(f"Detected language: {result['language']}")
else:
    print("⚠️ Transcription failed - check audio format")

よくあるエラーメッセージ

エラー原因対処
"File not found"パス誤りパスを確認
"Unsupported format"非対応形式WAV/MP3へ変換
"Out of memory"ファイル过大チャンク分割
"Empty audio"破損再エンコード

ベストプラクティス要約

  1. 可能なら16 kHz(Whisperに最適)
  2. ステレオよりモノ(内部はモノ処理)
  3. **ロスレス(WAV/FLAC)**で最高精度
  4. 長いファイル(1時間超)は分割して精度と安定性を確保
  5. 音量を正規化
  6. 背景ノイズを最小化
  7. モデルサイズを選ぶ(大きいモデルは悪条件に強い)
  8. 大きいモデルの前にbaseで試す

まとめ

Whisperは柔軟で多様な形式・品質に対応しますが、最適な仕様に沿うと文字起こし精度は最良になります。
  • フォーマット: WAV、FLAC、MP3(≥128 kbps)
  • サンプルレート: 16 kHz(最適)
  • ビット深度: 16ビットPCM
  • チャンネル: モノラル
  • 品質: 明瞭な発話と低ノイズ
形式より「聞き取りやすい音声」が重要です。仕様が理想的でも録音品質が悪ければ精度は下がります。明瞭な発話、低ノイズ、マイク位置を意識してください。
本番ではSayToWordsのようなプラットフォームが形式変換・リサンプル・最適化を自動で行うため、細かい仕様よりクリアな音声に集中できます。

Whisper向けの音声準備でお困りですか?前処理、チャンク戦略、精度向上に関する他のガイドもご覧ください。

今すぐ無料で試す

当社のAI音声・オーディオ/ビデオサービスを今すぐお試しください。高精度な音声文字起こし、多言語翻訳、話者分離に対応するだけでなく、自動動画字幕生成、音声・映像コンテンツのインテリジェント編集、音声と映像を組み合わせた同期解析も実現します。会議記録、ショート動画制作、ポッドキャスト制作など、あらゆるシーンをこれ一つでカバーできます。今すぐ無料トライアルを始めましょう!