


Bagaimana untuk mendapatkan tempoh audio dalam Python?
Bidang pemprosesan audio telah berkembang dengan ketara sejak beberapa tahun kebelakangan ini, dan Python telah menjadi pilihan biasa untuk mengendalikan tugas yang mengelilingi manipulasi audio. Apabila bekerja dengan audio, salah satu tugas biasa ialah menentukan panjang fail audio, yang berguna dalam pelbagai aplikasi seperti mencipta senarai main, analisis data audio atau membangunkan alat penyuntingan audio.
Sepanjang artikel ini, anda akan dibimbing melalui pelbagai teknik, dari yang asas hingga lanjutan, untuk mendapatkan tempoh audio menggunakan Python contoh kod sebenar akan disediakan di sepanjang jalan ke dalam subjek, adalah penting untuk mendapatkan pemahaman tentang konsep dan istilah asas yang berkaitan dengan pemprosesan audio Ini akan memberi anda asas yang diperlukan untuk melaksanakan pelbagai pendekatan yang dibentangkan kemudian dalam artikel dan kemudian terokai sintaks dan algoritma untuk mengiranya.
Istilah "tempoh audio" merujuk kepada tempoh masa fail audio dimainkan, biasanya diukur dalam saat atau minit. Nilai ini dipengaruhi oleh satu siri ciri yang mentakrifkan fail audio, termasuk bilangan sampel, saluran dan kadar sampel. Pemahaman menyeluruh tentang pengetahuan ini adalah penting untuk pelbagai aplikasi, termasuk tetapi tidak terhad kepada transkripsi, analisis dan penyuntingan audio.
Sintaks
Python menyediakan pelbagai perpustakaan untuk mengurus pemprosesan fail audio. Pustaka ini termasuk wave, pydub dan librosa, masing-masing dengan sintaks dan fungsi uniknya sendiri untuk memuat naik fail audio dan mengukur tempohnya. Proses biasa untuk menentukan tempoh fail audio termasuk langkah berikut:
Mengimport perpustakaan wajib.
Baca fail audio.
Mengekstrak ciri fail (seperti kadar sampel, kuantiti sampel dan kuantiti saluran).
Mengira tempoh menggunakan ciri yang diekstrak.
Algoritma
Untuk mendapatkan tempoh fail audio dalam Python, anda boleh melaksanakan algoritma berikut -
Laksanakan perpustakaan yang sesuai untuk memuat naik fail audio.
Ekstrak ciri fail audio yang berkaitan, termasuk kadar pensampelan, bilangan saluran dan bilangan bingkai.
Kira tempoh fail audio dengan membahagikan bilangan bingkai dengan kadar sampel.
Keluarkan nilai tempoh dengan mencetak atau mengembalikannya.
Pendekatan
Kami kini akan meneroka beberapa teknik untuk menentukan tempoh fail audio dalam Python. Kaedah berikut akan diperkenalkan −
Dengan menggunakan perpustakaan gelombang.
Dengan menggunakan perpustakaan pydub.
Gunakan perpustakaan librosa.
Dengan menggunakan perpustakaan ffmpeg-python.
Kaedah 1: Gunakan perpustakaan gelombang
Pustaka wave ialah modul terbina dalam Python yang menyediakan sokongan untuk fail WAV. Berikut ialah contoh kod lengkap yang menunjukkan cara mendapatkan tempoh fail audio menggunakan perpustakaan gelombang -
Contoh
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")
Output
Duration: 10.00 seconds
Pendekatan 2: Menggunakan perpustakaan pydub
Pustaka pydub berdiri sebagai alat yang biasa digunakan dan mudah digunakan untuk manipulasi audio Untuk menggunakan pydub, anda mesti memasangnya terlebih dahulu melalui pip install pydub. Berikut adalah contoh kod untuk mendapatkannya tempoh menggunakan pydub −
Contoh
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")
Output
Duration: 10.00 seconds
Dalam coretan kod khusus ini, kami mengimport kelas AudioSegment, yang berasal dari pustaka pydub, dengan tujuan membaca dan membuat pengubahsuaian pada fail audio Untuk memuatkan fail audio, kami memanggil fungsi from_file dan duration_seconds atribut digunakan untuk memperoleh panjang fail audio dalam beberapa saat.
Kaedah 3 menggunakan perpustakaan librosa:
Librosa berdiri sebagai satu lagi perpustakaan yang dihormati untuk pemprosesan audio menggunakan Python, memberikan penekanan terutamanya pada analisis muzik dan bunyi Dengan menaip 'pip install librosa' dalam terminal atau command prompt anda, anda akan dapat memasangnya dengan mudah dan cepat Berikut ialah contoh kod untuk mendapatkan tempoh menggunakan librosa −
.Contoh
import 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")
Output
Duration: 10.00 seconds
Dalam contoh ini, gunakan fungsi librosa.load untuk membaca fail audio dan mendapatkan data audio dan kadar sampel. Kemudian, gunakan fungsi librosa.get_duration untuk mengira tempoh berdasarkan data audio dan kadar sampel.
Pendekatan 4: Menggunakan perpustakaan ffmpeg-python
FFmpeg ialah alat yang biasa digunakan untuk memproses audio dan video pada pelbagai platform. Pustaka ffmpeg-python bertindak sebagai pembungkus Python untuk antara muka baris arahan FFmpeg dan boleh dipasang menggunakan pip install ffmpeg-python. Berikut ialah contoh kod yang menunjukkan cara mendapatkan tempoh fail audio menggunakan ffmpeg-python−
Example
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")
Output
Duration: 10.00 seconds
在这个例子中,我们使用ffmpeg.probe函数来获取与音频文件相关的元数据。随后,我们从流列表中过滤出音频流,并从流字典中提取出'duration'字段中的持续时间。
结论
在本文中,我们深入探讨了使用wave、pydub、librosa和ffmpeg-python库在Python中获取音频文件时长的四种不同方法。每种方法都有其自身的优点和限制,库的选择取决于您个人的需求和偏好。这些代码示例旨在为您提供在Python项目中实现音频时长计算的坚实基础。
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan tempoh audio dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Memuatkan Fail Pickle di Python 3.6 Kesalahan Laporan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual