【音声ファイル】を無料で圧縮する方法:Pythonで手軽に実現するスクリプト

はじめに

音声ファイルを扱う場面では、データ量が大きくなることがよくあります。1時間以上の会議やインタビューを録音した場合、そのファイルを文字起こしサービスにアップロードする際、容量制限に引っかかることも少なくありません。また、クラウドでの保存や共有、スマホへの転送でも、サイズの大きさがネックになることがあります。そのため、音声ファイルの圧縮は必須です。

本記事では、Pythonのpydubライブラリを使って、音声ファイルを品質を維持しつつサイズを削減する方法を紹介します。

フリーソフトの課題(手間や制限)に触れながら、サンプルレート・ビットレートなどユーザーが変更可能な要素も解説します。

音声ファイル圧縮が求められるシーン

文字起こしのためのアップロード制限

  • 長時間の音声(1時間以上)のファイルサイズが大きく、文字起こしサービスでアップロード制限(通常500MB~1GB)に引っかかる。

クラウド保存や共有

  • Google Driveやメール送信での容量制限を避け、ファイルを素早く共有したいとき。

スマホ・タブレットへの転送

  • 容量の小さいデバイスで再生するため、軽量化が必要。

長時間録音の管理

  • 会議・インタビュー・講義などで、大量の録音データを効率的に保存・整理する際。

変換フリーソフトの不便と課題

しかし、多くのフリーサイトを利用する際には、次のような問題に直面することもあります。


「無料」と謳っておきながら有料プランに誘導される

最初は無料で変換できるように見えても、容量制限や回数制限があり、途中で「課金が必要」と表示されるケースが多いです。


複数ファイルの一括変換ができず、1ファイルずつ手作業でアップロードが必要

無料のオンラインツールでは、1ファイルずつしかアップロードできないものも多く、複数の音声ファイルを圧縮する際にはアップロード→圧縮→ダウンロードを繰り返すという手間が発生します。

このような問題を解決するために、Pythonで簡単なスクリプトを使って、自分のパソコン上で素早く、音声ファイルを圧縮する方法を紹介します。

Pythonによる音声圧縮の手順

必要な準備

まず、必要なライブラリであるPydubをインストールします。以下のコマンドを実行してください。

pip install pydub

Pydubは、音声処理ライブラリであるffmpegも必要とします。以下のコマンドでffmpegをインストールしてください(Homebrewを使った例)。

Mac:

brew install ffmpeg

Windows:

ffmpegの公式サイトからインストーラをダウンロードし、パスを通してください。

音声ファイルを圧縮する変換スクリプト例

以下のスクリプトを使えば、指定したディレクトリ内の音声ファイル一括で、サンプルレートやビットレートを自由に調整して圧縮できます。パスを汎用的に設定してあるため、誰でも自分の環境に合わせて変更しやすくなっています。

from pydub import AudioSegment
import os

# 入出力ディレクトリの設定
input_directory = "./input_audio"
output_directory = "./compressed_audio"
os.makedirs(output_directory, exist_ok=True)

# MP3ファイルの一覧を取得
mp3_files = [f for f in os.listdir(input_directory) if f.endswith('.mp3')]

# 音声ファイルの圧縮処理
for mp3_file in mp3_files:
    audio = AudioSegment.from_mp3(os.path.join(input_directory, mp3_file))

    # ユーザーが変更できる部分(サンプルレートとビットレート)
    audio = audio.set_frame_rate(20000)  # サンプルレートを20kHzに変更
    output_file = os.path.join(output_directory, mp3_file)

    audio.export(output_file, format="mp3", bitrate="36k")  # ビットレート36kbpsで保存
    print(f"Compressed file saved as: {output_file}")

ユーザーが変更できる数値:サンプルレート・ビットレート

サンプルレート

音声データを1秒間に何回サンプリング(録音)するかを表す。 例:44.1kHzは1秒間に44,100回のサンプルを記録するという意味。高いサンプルレート=より滑らかで高品質な音声。

20kHz(推奨)→ 音声の明瞭さを維持。

  • 調整例:16kHzまたは12kHzまで下げても、会話は理解可能。
  • 初期値:44.1kHz(音楽や高品質音声向け)。

音楽や高品質な音声は、44.1kHzのモノラルWAV形式で提供されることが多いため、WAVファイルをMP3に変換し、さらにサンプルレートやビットレートを下げて圧縮することで、サイズを小さくしつつ品質を維持するのが効果的です。

「【WAVからMP3】に無料で変換する方法:Pythonで手軽に実現するスクリプト」に関しては、こちらの記事をご覧ください。

ビットレート

1秒あたりに使われるデータ量を示し、音質とファイルサイズに影響する。

例:128kbpsは1秒あたり128キロビットのデータを使用。高ビットレート=高音質だが、サイズが大きい。

  • 調整例:64kbpsや128kbpsで高音質を維持。
  • 推奨:会話中心なら36~64kbpsで十分。

インタビューAIでは、1時間の音声ファイルをわずか15秒で素起こしでき、その後AIが自動で「ケバ取り」や「整文」も行います。

アップロード容量制限に引っかかる場合には、本記事で音声ファイルを圧縮したのちに、インタビューAIに音声ファイルをアップロードして、自動文字起こしを試してみてください。

まとめ

Pythonのpydubを使うことで、音声ファイルの圧縮を効率化し、品質を保ちながらサイズを最適化できます。ユーザーは、サンプルレートやビットレートを用途に応じて自由に設定できるため、オンラインツールよりも柔軟な管理が可能です。

煩わしい圧縮作業から解放され、より効率的に音声データを管理しましょう!

タイトルとURLをコピーしました