
はじめに
ゲーム開発を始めて、VOICEVOXによる音声作成をする機会が増え個別にmp3へ変換してたのですが、手間がかかるのでAIに一括変換スクリプトを作成してもらいました。
尚且つ、mp3より、OGGの方が良いとの事で、その詳細も聞いてみました。
MP3とOGGの違い(比較)
「mp3」より「ogg」の方が軽いのでしょうか?
VOICEVOXで音声の書き出しは、wavのみなので、軽量のogg出力スクリプト作成して欲しいです。
VOICEVOXで音声の書き出しは、wavのみなので、軽量のogg出力スクリプト作成して欲しいです。
はい、素晴らしい視点です!
✅ MP3とOGGの違い:ざっくり比較
項目 | MP3 | OGG(Vorbis) |
---|---|---|
対応環境 | ほぼ全ブラウザで対応 | ほとんどの主要ブラウザ対応(iOS Safari除く場合あり) |
音質 | 中音質向け(標準) | 同ビットレートでMP3より高音質になる場合が多い |
ファイルサイズ | 同じ音質ならMP3より小さくできる | 非常に高効率な圧縮(特に音声や効果音向き) |
特徴 | 古くからの定番 | フリー・オープンな規格で高音質、軽量 |
つまり:
・ゲーム用途の効果音や短い台詞なら、OGGの方が軽くて高音質になる可能性大!
・Safari(特にiOS)でOGGが鳴らないケースがあるので、互換用にMP3も持っておくと完璧。
(WAV)→ OGG変換スクリプト
以下は、VOICEVOXで書き出したWAVファイルを .ogg に一括変換するスクリプトです:
🔧 準備:ffmpegがインストールされている必要があります(パスが通っていればOK)
🔁 convert_to_ogg.py
import os
import subprocess
input_folder = "input_wav" # WAVファイルを入れるフォルダ
output_folder = "output_ogg" # 出力先フォルダ
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".wav"):
wav_path = os.path.join(input_folder, filename)
ogg_filename = os.path.splitext(filename)[0] + ".ogg"
ogg_path = os.path.join(output_folder, ogg_filename)
cmd = [
"ffmpeg", "-i", wav_path,
"-c:a", "libvorbis", "-q:a", "4", # -q:a 4は中音質(0〜10で調整可)
ogg_path
]
subprocess.run(cmd)
print(f"✅ Converted: {ogg_filename}")
使い方
- VOICEVOXで .wav を保存(例:input_wav/option.wav)
- このスクリプトを実行(convert_to_ogg.py)
- output_ogg/ フォルダに .ogg が出力されます!
その他の変換設定
- 低音質にしたい → “-q:a”, “2”(更にサイズ削減)
- 音質優先 → “-q:a”, “6” など調整可能
このスクリプト、今後何度も使い回せますし、ゲーム開発のワークフローにも組み込めます!
必要なら .bat ファイル化してダブルクリックで変換できるようにもできますよ。
他にも「MP3とOGGを同時に生成」や「VOICEVOXから直接自動変換」の拡張も可能です。
ドラッグアンドドロップに対応
ありがとうございます。
ドラッグアンドドロップで変換できるようにしてもらえますか?
ドラッグアンドドロップで変換できるようにしてもらえますか?
もちろんです!
VOICEVOXで書き出した .wav ファイルを ドラッグ&ドロップで .ogg に一括変換できるスクリプトを用意しました。
VOICEVOXで書き出した .wav ファイルを ドラッグ&ドロップで .ogg に一括変換できるスクリプトを用意しました。
✅ 機能概要
- Windows用の Python スクリプト(.py)
- .wav ファイルをスクリプトにドラッグ&ドロップするだけで .ogg に変換
- 元ファイルと同じフォルダに .ogg を出力(拡張子だけ変わる)
スクリプトファイル:wav_to_ogg_dragdrop.py
import sys
import os
import subprocess
def convert_wav_to_ogg(wav_path):
if not wav_path.lower().endswith(".wav"):
print(f"❌ 対象外のファイル: {wav_path}")
return
output_path = os.path.splitext(wav_path)[0] + ".ogg"
cmd = [
"ffmpeg", "-i", wav_path,
"-c:a", "libvorbis", "-q:a", "4", # 音質指定(0~10:4は中程度)
output_path
]
try:
subprocess.run(cmd, check=True)
print(f"✅ 変換完了: {output_path}")
except subprocess.CalledProcessError as e:
print(f"❌ エラー: {e}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("⚠️ WAVファイルをこのスクリプトにドラッグ&ドロップしてください。")
else:
for wav_file in sys.argv[1:]:
convert_wav_to_ogg(wav_file)
関連リンク
![[Python] MP3ファイルを指定のビットレートで一括変換](https://humanxai.info/images/uploads/python-ffmpeg-mp3-conv.webp)
[Python] MP3ファイルを指定のビットレートで一括変換
MP3ファイルを指定のビットレートで一括変換するPythonスクリプトの紹介
https://humanxai.info/posts/python-ffmpeg-mp3-conv/![[Python] 創作環境を整える ~Windows Terminal タブ管理~(startup.py 編)」](https://humanxai.info/images/uploads/python-startup-powershell.webp)
[Python] 創作環境を整える ~Windows Terminal タブ管理~(startup.py 編)」
コマンドプロンプト 及び powershellを起動時にまとめてタブ化する方法と、Pythonで普段よく使うアプリを一括起動するスタートアップスクリプトの紹介
https://humanxai.info/posts/python-startup-powershell/
💬 コメント