


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!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Gunakan kebanyakan editor teks untuk membuka fail XML; Jika anda memerlukan paparan pokok yang lebih intuitif, anda boleh menggunakan editor XML, seperti editor XML oksigen atau XMLSPY; Jika anda memproses data XML dalam program, anda perlu menggunakan bahasa pengaturcaraan (seperti Python) dan perpustakaan XML (seperti XML.Etree.ElementTree) untuk menghuraikan.

Permohonan yang menukarkan XML terus ke PDF tidak dapat dijumpai kerana mereka adalah dua format yang berbeza. XML digunakan untuk menyimpan data, manakala PDF digunakan untuk memaparkan dokumen. Untuk melengkapkan transformasi, anda boleh menggunakan bahasa pengaturcaraan dan perpustakaan seperti Python dan ReportLab untuk menghuraikan data XML dan menghasilkan dokumen PDF.

Kelajuan XML mudah alih ke PDF bergantung kepada faktor -faktor berikut: kerumitan struktur XML. Kaedah Penukaran Konfigurasi Perkakasan Mudah Alih (Perpustakaan, Algoritma) Kaedah Pengoptimuman Kualiti Kod (Pilih perpustakaan yang cekap, mengoptimumkan algoritma, data cache, dan menggunakan pelbagai threading). Secara keseluruhannya, tidak ada jawapan mutlak dan ia perlu dioptimumkan mengikut keadaan tertentu.

Alat pemformatan XML boleh menaip kod mengikut peraturan untuk meningkatkan kebolehbacaan dan pemahaman. Apabila memilih alat, perhatikan keupayaan penyesuaian, pengendalian keadaan khas, prestasi dan kemudahan penggunaan. Jenis alat yang biasa digunakan termasuk alat dalam talian, pemalam IDE, dan alat baris arahan.

Tidak ada XML percuma yang mudah dan langsung ke alat PDF di mudah alih. Proses visualisasi data yang diperlukan melibatkan pemahaman dan rendering data yang kompleks, dan kebanyakan alat yang dipanggil "percuma" di pasaran mempunyai pengalaman yang buruk. Adalah disyorkan untuk menggunakan alat sampingan komputer atau menggunakan perkhidmatan awan, atau membangunkan aplikasi sendiri untuk mendapatkan kesan penukaran yang lebih dipercayai.

Tukar XML ke PDF dengan kualiti tinggi pada telefon bimbit anda memerlukan: Parsing XML di awan dan menjana PDF menggunakan platform pengkomputeran tanpa pelayan. Pilih Parser XML yang cekap dan perpustakaan penjanaan PDF. Mengendalikan kesilapan dengan betul. Menggunakan sepenuhnya kuasa pengkomputeran awan untuk mengelakkan tugas berat pada telefon anda. Laraskan kerumitan mengikut keperluan, termasuk memproses struktur XML kompleks, menghasilkan PDF multi-halaman, dan menambah imej. Cetak maklumat log untuk membantu debug. Mengoptimumkan prestasi, pilih parser yang cekap dan perpustakaan PDF, dan boleh menggunakan pengaturcaraan asynchronous atau data XML preprocessing. Memastikan kualiti kod yang baik dan penyelenggaraan.

Tidak mustahil untuk menyelesaikan penukaran XML ke PDF secara langsung di telefon anda dengan satu aplikasi. Ia perlu menggunakan perkhidmatan awan, yang boleh dicapai melalui dua langkah: 1. Tukar XML ke PDF di awan, 2. Akses atau muat turun fail PDF yang ditukar pada telefon bimbit.

Ia tidak mudah untuk menukar XML ke PDF secara langsung pada telefon anda, tetapi ia boleh dicapai dengan bantuan perkhidmatan awan. Adalah disyorkan untuk menggunakan aplikasi mudah alih ringan untuk memuat naik fail XML dan menerima PDF yang dihasilkan, dan menukarnya dengan API awan. API awan menggunakan perkhidmatan pengkomputeran tanpa pelayan, dan memilih platform yang betul adalah penting. Kerumitan, pengendalian kesilapan, keselamatan, dan strategi pengoptimuman perlu dipertimbangkan ketika mengendalikan penjanaan XML dan penjanaan PDF. Seluruh proses memerlukan aplikasi front-end dan API back-end untuk bekerjasama, dan ia memerlukan pemahaman tentang pelbagai teknologi.
