Heim > Artikel > Backend-Entwicklung > Wie erhalte ich die Dauer von Audio in Python?
Der Bereich der Audioverarbeitung hat sich in den letzten Jahren erheblich erweitert, und Python ist zu einer häufigen Wahl für die Bewältigung von Aufgaben rund um die Audiomanipulation geworden. Bei der Arbeit mit Audio besteht eine der häufigsten Aufgaben darin, die Länge der Audiodatei zu bestimmen, was in verschiedenen Anwendungen nützlich ist, z. B. beim Erstellen von Wiedergabelisten, bei der Analyse von Audiodaten oder bei der Entwicklung von Audiobearbeitungswerkzeugen.
In diesem Artikel werden Sie durch eine Vielzahl von Techniken geführt, die von einfachen bis hin zu fortgeschrittenen Techniken reichen, um die Dauer von Audio mithilfe von Python zu ermitteln. Bevor Sie sich eingehender mit dem Thema befassen Es ist von entscheidender Bedeutung, die grundlegenden Konzepte und Terminologien im Zusammenhang mit der Audioverarbeitung zu verstehen. Dadurch erhalten Sie die nötige Grundlage für die Umsetzung der verschiedenen Ansätze, die später in diesem Artikel vorgestellt werden die Syntax und Algorithmen zu ihrer Berechnung.
Der Begriff „Audiodauer“ bezieht sich auf die Länge der Wiedergabe einer Audiodatei, normalerweise gemessen in Sekunden oder Minuten. Dieser Wert wird durch eine Reihe von Merkmalen beeinflusst, die die Audiodatei definieren, einschließlich der Anzahl der Samples, der Kanäle und der Samplerate. Ein gründliches Verständnis dieses Wissens ist für eine Vielzahl von Anwendungen wichtig, einschließlich, aber nicht beschränkt auf Transkription, Analyse und Audiobearbeitung.
Python bietet eine Vielzahl von Bibliotheken zur Verwaltung der Audiodateiverarbeitung. Zu diesen Bibliotheken gehören Wave, Pydub und Librosa, jede mit ihrer eigenen einzigartigen Syntax und Funktionen zum Hochladen von Audiodateien und zum Messen ihrer Dauer. Der typische Prozess zur Bestimmung der Dauer einer Audiodatei umfasst die folgenden Schritte:
Importieren der obligatorischen Bibliotheken.
Audiodateien lesen.
Extrahieren der Eigenschaften der Datei (z. B. Abtastrate, Anzahl der Abtastungen und Kanalanzahl).
Berechnung der Dauer anhand der extrahierten Merkmale.
Um die Dauer einer Audiodatei in Python zu ermitteln, können Sie den folgenden Algorithmus implementieren:
Implementieren Sie die entsprechende Bibliothek, um die Audiodatei hochzuladen.
Extrahieren Sie relevante Funktionen von Audiodateien, einschließlich Abtastrate, Anzahl der Kanäle und Anzahl der Frames.
Berechnen Sie die Dauer der Audiodatei, indem Sie die Anzahl der Frames durch die Abtastrate dividieren.
Geben Sie den Dauerwert aus, indem Sie ihn ausdrucken oder zurücksenden.
Wir werden nun verschiedene Techniken zur Bestimmung der Dauer von Audiodateien in Python untersuchen. Die folgenden Methoden werden vorgestellt −
Durch die Nutzung der Wave-Bibliothek.
Durch die Verwendung der Pydub-Bibliothek.
Verwenden Sie die librosa-Bibliothek.
Durch die Verwendung der ffmpeg-python-Bibliothek.
Die Wave-Bibliothek ist ein integriertes Modul von Python, das Unterstützung für WAV-Dateien bietet. Hier ist ein vollständiges Codebeispiel, das zeigt, wie man die Dauer einer Audiodatei mithilfe der Wave-Bibliothek ermittelt -
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")
Duration: 10.00 seconds
Die Pydub-Bibliothek ist ein häufig verwendetes und einfach zu verwendendes Tool zur Bearbeitung von Audiodaten. Um Pydub nutzen zu können, müssen Sie es zunächst über pip install pydub installieren −
from pydub import AudioSegment def get_duration_pydub(file_path): audio_file = AudioSegment.from_file(file_path) duration = audio_file.duration_seconds return duration file_path = 'example.wav' duration = get_duration_pydub(file_path) print(f"Duration: {duration:.2f} seconds")
Duration: 10.00 seconds
In diesem speziellen Codeausschnitt importieren wir die AudioSegment-Klasse, die aus der Pydub-Bibliothek stammt, um Audiodateien zu lesen und Änderungen daran vorzunehmen. Um die Audiodatei zu laden, rufen wir die Funktion „from_file“ auf und verwenden das Attribut „duration_seconds“. um die Länge der Audiodatei in Sekunden zu ermitteln.
Librosa ist eine weitere angesehene Bibliothek für die Audioverarbeitung mit Python, deren Schwerpunkt hauptsächlich auf der Analyse von Musik und Sound liegt. Durch Eingabe von „pip install librosa“ in Ihr Terminal oder Ihre Eingabeaufforderung können Sie dies einfach und schnell tun Installieren Sie es. Hier ist ein Codebeispiel, um die Dauer mit librosa −
zu ermittelnimport librosa def get_duration_librosa(file_path): audio_data, sample_rate = librosa.load(file_path) duration = librosa.get_duration(y=audio_data, sr=sample_rate) return duration file_path = 'example.wav' duration = get_duration_librosa(file_path) print(f"Duration: {duration:.2f} seconds")
Duration: 10.00 seconds
In diesem Beispiel verwenden Sie die Funktion librosa.load, um die Audiodatei zu lesen und die Audiodaten und die Abtastrate abzurufen. Verwenden Sie dann die Funktion librosa.get_duration, um die Dauer basierend auf den Audiodaten und der Abtastrate zu berechnen.
FFmpeg ist ein häufig verwendetes Tool zur Verarbeitung von Audio und Video auf verschiedenen Plattformen. Die ffmpeg-python-Bibliothek fungiert als Python-Wrapper für die FFmpeg-Befehlszeilenschnittstelle und kann mit pip install ffmpeg-python installiert werden. Im Folgenden finden Sie einen Beispielcode, der zeigt, wie Sie die Dauer einer Audiodatei mit ffmpeg-python −
ermittelnimport 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项目中实现音频时长计算的坚实基础。
Das obige ist der detaillierte Inhalt vonWie erhalte ich die Dauer von Audio in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!