cari
Rumahpembangunan bahagian belakangTutorial PythonBagaimana untuk mendapatkan tempoh audio dalam Python?

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!

Kenyataan
Artikel ini dikembalikan pada:tutorialspoint. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Python: Permainan, GUI, dan banyak lagiPython: Permainan, GUI, dan banyak lagiApr 13, 2025 am 12:14 AM

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 vs C: Aplikasi dan kes penggunaan dibandingkanPython vs C: Aplikasi dan kes penggunaan dibandingkanApr 12, 2025 am 12:01 AM

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.

Rancangan Python 2 jam: Pendekatan yang realistikRancangan Python 2 jam: Pendekatan yang realistikApr 11, 2025 am 12:04 AM

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

Python: meneroka aplikasi utamanyaPython: meneroka aplikasi utamanyaApr 10, 2025 am 09:41 AM

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.

Berapa banyak python yang boleh anda pelajari dalam 2 jam?Berapa banyak python yang boleh anda pelajari dalam 2 jam?Apr 09, 2025 pm 04:33 PM

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 Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam?Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam?Apr 02, 2025 am 07:18 AM

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 ...

Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah?Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah?Apr 02, 2025 am 07:15 AM

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

Apa yang perlu saya lakukan jika modul '__builtin__' tidak dijumpai apabila memuatkan fail acar di Python 3.6?Apa yang perlu saya lakukan jika modul '__builtin__' tidak dijumpai apabila memuatkan fail acar di Python 3.6?Apr 02, 2025 am 07:12 AM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

mPDF

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

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

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual