🚀

オーディオAI Hello World — 事前学習モデルで5分でやる7つのプロジェクト

pip install 1行+コード3行で音源分離、音声認識、TTS、ピッチ検出、音楽生成まで

全部実際に動かせるコード。Python 3.10+必要。

0. 根本から — PyTorchで直接実装するオーディオ分離パイプライン

CLIツール呼び出しは「使用」であって「理解」ではない。DemucsやRoFormerの中で実際に起きていること:

raw audio → STFT → スペクトログラム → ニューラルネット(マスク予測) → 原本×マスク → ISTFT → 分離audio

マスクが核心:1.0に近い値は「この時間・周波数ビンはボーカル」。Demucs(26.3Mパラメータ)やRoFormer(84.2Mパラメータ)は、このマスク予測器のより高度なバージョンに過ぎない。


1. 音源分離 — 曲からボーカルを抜く

モデル: Demucs htdemucs(Meta、~80MB)

pip install demucs torchcodec
demucs song.mp3 --two-stems vocals

2. 音声認識(STT)

モデル: OpenAI Whisper(tiny=75MB~large-v3=3GB)

import whisper
model = whisper.load_model("tiny")
print(model.transcribe("audio.mp3")["text"])

3. 音声合成(TTS)

モデル: Coqui TTS XTTS-v2(~1.8GB)

from TTS.api import TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2")
tts.tts_to_file(text="こんにちは", language="ja", file_path="output.wav")

4. ピッチ検出

import librosa
y, sr = librosa.load("vocal.wav")
f0, _, _ = librosa.pyin(y, fmin=80, fmax=1000, sr=sr)

5-6. オーディオ分類

from transformers import pipeline
classifier = pipeline("audio-classification", model="MIT/ast-finetuned-audioset-10-10-0.4593")
print(classifier("audio.wav")[:3])

7. 音楽生成

from transformers import pipeline
generator = pipeline("text-to-audio", model="facebook/musicgen-small")
music = generator("upbeat electronic dance music")

事前学習モデル一覧

用途 モデル サイズ パッケージ 難易度
音源分離 Demucs 80MB demucs 簡単
カラオケ分離 UVR Mel-Band RoFormer 913MB audio-separator 簡単
音声認識 Whisper 75MB-3GB openai-whisper 簡単
TTS XTTS-v2 1.8GB TTS 普通
ピッチ検出 librosa pyin 0MB librosa 簡単
音分類 AST 350MB transformers 簡単
音楽生成 MusicGen 300MB-3.3GB transformers 簡単

全部GPUなしCPUで動く。遅いが結果は出る。

キーコンセプト

1

音源分離 — pip install demucs + 1行コマンドでボーカル/伴奏分離

2

音声認識 — Whisperモデルロード + transcribe()1行でテキスト変換

3

音声合成 — Coqui TTSでテキスト→自然な音声WAV生成

4

ピッチ検出 — librosa.pyin()でモデルなしリアルタイム音高抽出

5

音楽生成 — MusicGenにテキストプロンプトを入れると音楽が出る

ユースケース

初オーディオAIプロジェクト — 訓練なしで事前学習モデルだけで成果物生成 プロトタイプ — 音源分離+STT+TTSを組み合わせてカラオケ/吹替/ポッドキャストツール制作 モデル比較 — 同じ入力で複数モデルを動かし品質/速度/サイズのトレードオフを体感