ホームページ >バックエンド開発 >Python チュートリアル >Pythonでオーディオの長さを取得するにはどうすればよいですか?
オーディオ処理の分野は近年大幅に拡大しており、オーディオ操作に関連するタスクを処理するには Python が一般的な選択肢となっています。オーディオを扱うときの一般的なタスクの 1 つは、オーディオ ファイルの長さを決定することです。これは、プレイリストの作成、オーディオ データ分析、オーディオ編集ツールの開発など、さまざまなアプリケーションで役立ちます。
この記事では、Python を使用してオーディオの長さを取得するための、基本的なものから高度なものまで、さまざまなテクニックについて説明します。途中で実際のコード例も提供されます。この主題では、オーディオ処理に関連する基本的な概念と用語を理解することが重要です。これにより、この記事で後ほど説明するさまざまなアプローチを実装するために必要な基礎が得られます。まず、オーディオの長さの定義から始めましょう。次に、それを計算するための構文とアルゴリズムを調べます。
「オーディオ継続時間」という用語は、オーディオ ファイルの再生時間の長さを指し、通常は秒または分で測定されます。この値は、サンプル数、チャンネル、サンプル レートなど、オーディオ ファイルを定義する一連の特性の影響を受けます。この知識を完全に把握することは、文字起こし、分析、オーディオ編集などのさまざまなアプリケーションにとって重要です。
Python は、オーディオ ファイルの処理を管理するためのさまざまなライブラリを提供します。これらのライブラリには、wave、pydub、librosa が含まれており、それぞれがオーディオ ファイルをアップロードし、その長さを測定するための独自の構文と関数を備えています。オーディオ ファイルの長さを決定する一般的なプロセスには、次の手順が含まれます。
必須ライブラリをインポートします。
音声ファイルを読み取ります。
ファイルの特性 (サンプル レート、サンプル数、チャンネル数など) を抽出します。
抽出された特徴を利用して継続時間を計算します。
アプローチ 2: pydub ライブラリの使用
import wave def get_duration_wave(file_path): with wave.open(file_path, 'r') as audio_file: frame_rate = audio_file.getframerate() n_frames = audio_file.getnframes() duration = n_frames / float(frame_rate) return duration file_path = 'example.wav' duration = get_duration_wave(file_path) print(f"Duration: {duration:.2f} seconds")###出力### リーリー
librosa ライブラリを使用する方法 3:
Duration: 10.00 seconds###出力### リーリー
この例では、 librosa.load 関数を使用してオーディオ ファイルを読み取り、オーディオ データとサンプル レートを取得します。次に、 librosa.get_duration 関数を使用して、オーディオ データとサンプル レートに基づいて継続時間を計算します。
FFmpeg は、さまざまなプラットフォームでオーディオとビデオを処理するために一般的に使用されるツールです。 ffmpeg-python ライブラリは、FFmpeg コマンド ライン インターフェイスの Python ラッパーとして機能し、pip install ffmpeg-python を使用してインストールできます。以下は、ffmpeg-python −
を使用してオーディオ ファイルの長さを取得する方法を示すサンプル コードです。import ffmpeg def get_duration_ffmpeg(file_path): probe = ffmpeg.probe(file_path) stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'audio'), None) duration = float(stream['duration']) return duration file_path = 'example.wav' duration = get_duration_ffmpeg(file_path) print(f"Duration: {duration:.2f} seconds")
Duration: 10.00 seconds
在这个例子中,我们使用ffmpeg.probe函数来获取与音频文件相关的元数据。随后,我们从流列表中过滤出音频流,并从流字典中提取出'duration'字段中的持续时间。
在本文中,我们深入探讨了使用wave、pydub、librosa和ffmpeg-python库在Python中获取音频文件时长的四种不同方法。每种方法都有其自身的优点和限制,库的选择取决于您个人的需求和偏好。这些代码示例旨在为您提供在Python项目中实现音频时长计算的坚实基础。
以上がPythonでオーディオの長さを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。