導航:首頁 > 編程語言 > python處理wav

python處理wav

發布時間:2024-12-28 09:17:07

❶ 誰知道如何在python中用處理wav文件,並且對他的頻譜進行分析的程序

1.讀取wav文件
# -*- coding: utf-8 -*-
import wave
import pylab as pl
import numpy as np
# 打開WAV文檔
f = wave.open(r"c:\WINDOWS\Media\ding.wav", "rb")
# 讀取格式信息
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 讀取波形數據
str_data = f.readframes(nframes)
f.close()
#將波形數據轉換為數組
wave_data = np.fromstring(str_data, dtype=np.short)
wave_data.shape = -1, 2
wave_data = wave_data.T
time = np.arange(0, nframes) * (1.0 / framerate)
# 繪制波形
pl.subplot(211)
pl.plot(time, wave_data[0])
pl.subplot(212)
pl.plot(time, wave_data[1], c="g")
pl.xlabel("time (seconds)")
pl.show()

2.觀察信號頻譜

# -*- coding: utf-8 -*-
import numpy as np
import pylab as pl
sampling_rate = 8000
fft_size = 512
t = np.arange(0, 1.0, 1.0/sampling_rate)
x = np.sin(2*np.pi*156.25*t) + 2*np.sin(2*np.pi*234.375*t)
xs = x[:fft_size]
xf = np.fft.rfft(xs)/fft_size
freqs = np.linspace(0, sampling_rate/2, fft_size/2+1)
xfp = 20*np.log10(np.clip(np.abs(xf), 1e-20, 1e100))
pl.figure(figsize=(8,4))
pl.subplot(211)
pl.plot(t[:fft_size], xs)
pl.xlabel(u"時間(秒)")
pl.title(u"156.25Hz和234.375Hz的波形和頻譜")
pl.subplot(212)
pl.plot(freqs, xfp)
pl.xlabel(u"頻率(Hz)")
pl.subplots_adjust(hspace=0.4)
pl.show()

❷ Python音頻處理方法

在Windows系統下,Python提供了wave和pyaudio兩個模塊,它們分別處理音頻文件的操作。首先,wave模塊主要用於音頻文件的讀寫,而pyaudio則負責音頻的實際處理,如錄音和播放。

錄音部分,我們需要設定參數如采樣率、通道數和位寬。首先,我們編寫一個將錄制好的wave音頻保存到文件的函數,使用wave包。接著,核心錄音過程會通過pyaudio,它會在內存中創建音頻輸入流,持續從錄音設備讀取聲音,錄音結束後,將數據寫入硬碟。

播放音頻時,與錄音過程相反,我們從文件讀取數據到內存,然後用pyaudio輸出到音響設備。通過設置固定大小的chunk進行緩沖,最後記得關閉文件輸入流和音頻輸出流以釋放資源。

下面是一些示例代碼片段:

import wave, pyaudio

framerate = 16000
NUM_SAMPLES = 2000
channels = 1
sampwidth = 2
TIME = 10

def save_wave_file(filename, data):

wf = wave.open(filename, 'wb')
...
wf.close()

def my_record():

pa = PyAudio()
stream = pa.open(format=paInt16, channels=1, rate=framerate, input=True, frames_per_buffer=NUM_SAMPLES)

...
save_wave_file('01.wav', my_buf)
stream.close()

def play():

wf = wave.open(r"01.wav", 'rb')
...
stream.close()
p.terminate()

if __name__ == '__main__': my_record()
print('Over!') play()

這個示例展示了如何使用這兩個模塊實現音頻的錄制和播放功能。在實際應用中,你可以根據需要調整參數和函數內容。

❸ Python播放wav音頻,在Windows系統下

手頭正好一個腳本,在Windows下執行沒有問題。供參考:


importwinsound,time,sys
mp3='qed.wav'
if__name__=='__main__':
iflen(sys.argv)<2:
times=1
else:
times=int(sys.argv[1])
iftimes==0:
while1:
winsound.PlaySound(mp3,winsound.SND_NODEFAULT)
else:
foriinrange(times):
winsound.PlaySound(mp3,winsound.SND_NODEFAULT)

❹ Python pyb音頻處理

Pyb可以讓你用簡單的方式處理音頻。

Pyb提供了簡潔的高層介面,極大的擴展了python處理音頻文件的能力。

GitHub鏈接: pyb-github

GitHub:

pyb的使用必須安裝對應的依賴軟體 ffmpeg 或 avconv

驗證是否安裝成功:

Open a WAV file

Open a mp3 file

Open a other file

切割音頻

分貝操作
分貝(decibel)是量度兩個相同單位之數量比例的計量單位,主要用於度量聲音強度,常用dB表示。

音頻鏈接
將一個文件添加到另一個文件的末尾

音頻長度

淡入淡出

重復音頻

再次淡入淡出

直接保存
所有ffmpeg支持的都支持

用標簽保存結果(元數據)

實例:

將mp3文件轉換成wav文件:

Python音頻處理庫 pyb

閱讀全文

與python處理wav相關的資料

熱點內容
圖圖老師講數學美國演算法 瀏覽:620
三星s9安全文件夾有啥用 瀏覽:720
怎麼ai捏臉安卓 瀏覽:276
軍命令證書 瀏覽:532
誤刪蘋果app怎麼恢復 瀏覽:866
如何設置內網伺服器IP 瀏覽:74
馬老師的加密通話視頻 瀏覽:743
掃碼識價app哪裡可以買 瀏覽:551
wpstopdf轉換器 瀏覽:639
怎麼把pdf導入iphone 瀏覽:565
7z後綴文件解壓縮 瀏覽:904
伺服器為什麼禁用三叉戟 瀏覽:934
解壓小視頻卸妝或化妝 瀏覽:555
太監程序員 瀏覽:56
java編譯選項包括 瀏覽:433
安卓手機如何導其他手機的通訊錄 瀏覽:931
離心式壓縮機品牌 瀏覽:167
plc編程推薦什麼電腦 瀏覽:936
安卓最新什麼系統版本 瀏覽:193
甜顏app真人交友在哪裡下載 瀏覽:335