見出し画像

【音声処理】音声ファイルフォーマット変換ツール サンプルコード

・業務効率化には何すればいいのかな?
・Pythonで自動化ツールを作成できると聞くけど、具体的に何が作れるの?
・自動化のアイデアが出てこない

こんな悩みを抱えている人に向けて、Pythonで作れる自動化ツールを解説しています。

音声処理のツールについて、こちらの記事で紹介しています。
 ⇒【画像・音声・動画】Pythonで作れる自動化ツールの具体例アイデア13選【業務効率化】

本記事では、音声ファイルフォーマット変換ツールのサンプルコードを公開しています。

サンプルコードは、自分で作成するのが難しい方や、ツール作成の手間を減らしたい方にお勧めです。ぜひご活用ください。

【関連記事】
【業務効率化】Pythonで作れる自動化ツール具体例・アイデア53選!
【Pythonで業務効率化】自動化ツールを自作する方法を5STEPで解説!



アイデア「音声ファイルフォーマット変換ツール」

概要

指定された音声ファイルを一括で異なるフォーマットに変換

導入メリット

異なるデバイスや用途で必要とされる音声フォーマットへの対応を容易にします。

ツール機能

ユーザーが指定した音声フォーマット(例:WAVからMP3)へ、フォルダ内の全音声ファイルを一括変換します。

必要技術

pydub:音声ファイルの読み込み、変換、保存を行う

処理フロー

  1. 変換元と変換先の音声フォーマットをユーザーから入力受け取り

  2. 変換対象の音声ファイルが含まれるフォルダを指定

  3. フォルダ内の音声ファイルを一覧化し、変換処理の対象とする

  4. 各音声ファイルを指定されたフォーマットに変換

  5. 変換後のファイルを元の場所に保存または新しいフォルダに保存

  6. 変換の進行状況と結果をログとして記録またはユーザーに通知


注意事項

著作権について

本ソースコードの著作権は、販売者に帰属します。
修正や改変は自由に行えますが、無断での複製、配布は法律で禁止されています。

ライセンスについて

本ソースコードは、個人利用及び商用利用が可能です。ただし、再販売や、本ソースコードを基にした派生作品の販売は禁止します。

返金について

デジタルコンテンツの性質上、購入後の返品や返金は原則として受け付けておりません。

使用上の免責事項

本ソースコードは予告なく変更や修正を行う場合があります。
本ソースコードの動作を保証するものではありません。
本ソースコードの使用から生じたいかなる直接的または間接的な損害に対しても、販売者は責任を負いません。
動作の不具合については、購入者自身の責任で対処してください。

サポートについて

本ソースコードに関するサポートは行っておりません。バグ報告や質問への対応は致しかねます。


事前準備

FFmpegについて

今回使用するpydubは、複数のフォーマットに対応するためFFmpegを利用しています。

FFmpegは、動画や音声のエンコード、デコード、変換処理など、様々なマルチメディア処理を行うことができるオープンソースのマルチメディアフレームワークです。

pydubでフォーマット変換をするためには、FFmpegを事前にインストールしてください。

FFmpegのインストール

  1. FFmpegの公式サイトからWindows用のビルドをダウンロードします。

  2. ダウンロードしたZIPファイルを解凍し、ffmpeg の実行可能ファイルが含まれるディレクトリ(通常は bin ディレクトリ内)を見つけます。

  3. そのディレクトリをシステムの環境変数 Path に追加します。これにより、コマンドラインから ffmpeg と ffprobe を実行できるようになります。

環境変数の追加(Windows)

  1. 「システムの詳細設定」を開きます。

  2. 「環境変数(N)…」ボタンをクリックします。

  3. 「システム環境変数」の中から「Path」を選択し、「編集」をクリックします。

  4. 「新規」をクリックし、ffmpeg の bin フォルダのパスを追加します。

  5. OKをクリックしてすべてのダイアログを閉じます。


ソースコード

from pydub import AudioSegment
import os

def convert_audio_files(input_folder, output_folder, source_format, target_format):
    """
    指定されたフォルダ内のすべての音声ファイルを、指定されたフォーマットに変換する関数。
    
    Args:
        input_folder (str): 入力ファイルが含まれるフォルダのパス
        output_folder (str): 変換後のファイルを保存するフォルダのパス
        source_format (str): 元のファイルのフォーマット
        target_format (str): 変換後のファイルのフォーマット
    """
    # 入力フォルダ内のファイル一覧を取得
    for filename in os.listdir(input_folder):
        if filename.endswith('.' + source_format):
            filepath = os.path.join(input_folder, filename)
            output_filepath = os.path.join(output_folder, os.path.splitext(filename)[0] + '.' + target_format)

            # 音声ファイルを読み込む
            audio = AudioSegment.from_file(filepath, format=source_format)

            # 指定されたフォーマットに音声ファイルを変換し、保存する
            audio.export(output_filepath, format=target_format)
            print(f"変換完了: {filename} -> {output_filepath}")

def main():
    input_folder = input("変換する音声ファイルが含まれるフォルダのパスを入力してください: ")
    output_folder = input("変換後の音声ファイルを保存するフォルダのパスを入力してください: ")
    source_format = input("元の音声ファイルの形式を入力してください(例:wav): ")
    target_format = input("変換後の音声ファイルの形式を入力してください(例:mp3): ")

    convert_audio_files(input_folder, output_folder, source_format, target_format)

if __name__ == "__main__":
    main()

最後まで読んでいただき、ありがとうございました!
参考のなったと思っていただけたら、
♡スキを押していただけると嬉しいです。

今後もサンプルコードを紹介する予定なので、
関心のある方は是非アカウントのフォローをお願いします!

いいなと思ったら応援しよう!