はじめに
オーディオ生成は、音楽の MusicGen (Meta)、完全な曲の Suno/Udio、音声クローン作成の イレブンラボに至るまで、劇的に進化しました。この記事では、AI を使用してオーディオを作成するためのツールとテクニックをまとめます。
1. 音楽生成 — MusicGen
from transformers import AutoProcessor, MusicgenForConditionalGeneration
import scipy
processor = AutoProcessor.from_pretrained("facebook/musicgen-small")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
# Text-to-music
inputs = processor(
text=["upbeat electronic dance music with synths and drums"],
padding=True,
return_tensors="pt",
)
audio_values = model.generate(
**inputs,
max_new_tokens=256, # ~5 seconds per 256 tokens
do_sample=True,
guidance_scale=3.0,
)
# Save
sampling_rate = model.config.audio_encoder.sampling_rate
scipy.io.wavfile.write("music.wav", rate=sampling_rate,
data=audio_values[0, 0].numpy())
MusicGen のバリアント
| モデル | パラメータ | 品質 | スピード |
|---|---|---|---|
| 音楽源小 | 300M | 良い | 速い |
| musicgen-medium | 1.5B | より良い | 中 |
| 音楽源大 | 3.3B | ベスト | 遅い |
| 音楽源メロディ | 1.5B | メロディー条件付き | 中 |
2. Suno AI / Udio — 完全なソング生成
Suno AI:
- Generate complete songs (vocals + instruments)
- Input: text description or lyrics
- Output: 2-4 minute songs
- Styles: pop, rock, jazz, classical, hip-hop, etc.
Udio:
- Similar capabilities, different aesthetic
- Better at certain genres
- More control over structure
Both are API-accessible for production use.
# Suno API example
import requests
response = requests.post(
"https://api.suno.ai/v1/generate",
headers={"Authorization": f"Bearer {SUNO_API_KEY}"},
json={
"prompt": "A cheerful pop song about coding and AI",
"style": "pop, upbeat, electronic",
"duration": 120, # seconds
"instrumental": False, # include vocals
}
)
3. 効果音の生成
from transformers import AutoProcessor, AudioLDM2Pipeline
import torch
# AudioLDM2 — text-to-audio
pipe = AudioLDM2Pipeline.from_pretrained(
"cvssp/audioldm2-large",
torch_dtype=torch.float16,
)
pipe.to("cuda")
# Generate sound effect
audio = pipe(
prompt="thunderstorm with heavy rain and wind",
negative_prompt="music, speech, low quality",
num_inference_steps=50,
audio_length_in_s=10.0,
).audios[0]
# Save
import soundfile as sf
sf.write("thunder.wav", audio, samplerate=16000)
4. テキスト読み上げ
# OpenAI TTS
from openai import OpenAI
from pathlib import Path
client = OpenAI()
response = client.audio.speech.create(
model="tts-1-hd",
voice="alloy", # alloy, echo, fable, onyx, nova, shimmer
input="Xin chào! Đây là bài narration được tạo bằng AI.",
speed=1.0,
)
Path("narration.mp3").write_bytes(response.content)
イレブンラボ — 音声クローン作成
from elevenlabs import ElevenLabs
client = ElevenLabs(api_key="your_key")
# Clone voice từ audio sample
voice = client.clone(
name="My Voice",
files=["voice_sample.mp3"],
description="A warm male voice",
)
# Generate speech with cloned voice
audio = client.generate(
text="Hello, this is my cloned voice speaking.",
voice=voice,
model="eleven_multilingual_v2",
)
with open("cloned_speech.mp3", "wb") as f:
for chunk in audio:
f.write(chunk)
5. ビデオ用の完全なオーディオ パイプライン
class VideoAudioPipeline:
"""Create complete audio track for AI-generated video"""
async def create_audio_track(self, video_script, duration_seconds):
# 1. Generate narration
narration = await self.generate_narration(video_script)
# 2. Generate background music
music = await self.generate_music(
style="cinematic ambient background",
duration=duration_seconds
)
# 3. Generate sound effects
sfx = await self.generate_sfx(video_script)
# 4. Mix audio tracks
final = self.mix_audio(
narration=narration,
music=music,
sfx=sfx,
music_volume=0.3,
sfx_volume=0.5,
)
return final
def mix_audio(self, narration, music, sfx, music_volume, sfx_volume):
"""Mix multiple audio tracks"""
from pydub import AudioSegment
narration_audio = AudioSegment.from_file(narration)
music_audio = AudioSegment.from_file(music) - (1 / music_volume)
sfx_audio = AudioSegment.from_file(sfx) - (1 / sfx_volume)
# Overlay
mixed = narration_audio.overlay(music_audio).overlay(sfx_audio)
mixed.export("final_audio.mp3", format="mp3")
return "final_audio.mp3"
概要
| ツール | タイプ | オープンソース | 最適な用途 |
|---|---|---|---|
| ミュージックジェン | 音楽 | はい | バックグラウンドミュージック |
| スノ | 歌 | いいえ (API) | ボーカル付き全曲 |
| オーディオLDM2 | サウンドFX | はい | 効果音 |
| OpenAI TTS | スピーチ | いいえ (API) | ナレーション |
| イレブンラボ | 声 | いいえ (API) | 音声クローン |
📌 次の記事: 3D 生成とアバター AI。