您好,登錄后才能下訂單哦!
這篇文章主要介紹Python3分析處理聲音數據的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
將音頻文件拷貝到程序所在目錄即可。
如下所示:
#!/usr/bin/env python # encoding: utf-8 """ @Company:華中科技大學電氣學院聚變與等離子研究所 @version: V1.0 @author: Victor @contact: 1650996069@qq.com or yexin@hust.edu.cn 2018--2020 @software: PyCharm @file: VoiceDataProcessing.py @time: 2018/9/8 13:08 @Desc:處理聲音數據 """ import wave import pylab as pl import numpy as np print('1650996069@qq.com or yexin@hust.edu.cn') print('working...') print("read wav data....") # 打開WAV文檔,聲音文件 f = wave.open(r"speak.wav", "rb") fo = wave.open(r"jg.wav", "wb") fi = wave.open(r"back.wav", "rb") # 讀取波形數據 # (nchannels, sampwidth, framerate, nframes, comptype, compname) params = f.getparams() nchannels, sampwidth, framerate, nframes = params[:4] str_data = f.readframes(nframes) fi_params = fi.getparams() fi_nframes = fi_params[3] fi_str_data = fi.readframes(fi_nframes) # 將波形數據轉換為數組,并更改 print("update wav data....") wave_data = np.fromstring(str_data, dtype=np.short) fi_wave_data = np.fromstring(fi_str_data, dtype=np.short) # 復制并合并聲音 new_wave_data = np.hstack((wave_data, wave_data, wave_data, wave_data, wave_data, wave_data, wave_data, wave_data)) temp_wavedata = fi_wave_data[:len(new_wave_data)] new_wave_data = temp_wavedata * 0.5 + new_wave_data * 0.5 new_wave_data = np.array(new_wave_data) new_wave_data = new_wave_data.astype(wave_data.dtype) new_str_data = new_wave_data.tostring() # 寫波形數據參數 print("save new wav files....") fo.setnchannels(nchannels) fo.setframerate(framerate) fo.setsampwidth(sampwidth) fo.writeframes(new_str_data) # 繪制波形 wave_data.shape = -1, 2 wave_data = wave_data.T time = np.arange(0, nframes) * (1.0 / framerate) pl.subplot(221) pl.plot(time, wave_data[0]) pl.subplot(222) pl.plot(time, wave_data[1], c="g") pl.xlabel("time (seconds)") pl.show() # 繪制波形 new_wave_data.shape = -1, 2 new_wave_data = new_wave_data.T new_time = np.arange(0, nframes * 8) * (1.0 / framerate) pl.subplot(223) pl.plot(new_time, new_wave_data[0]) pl.subplot(224) pl.plot(new_time, new_wave_data[1], c="g") pl.xlabel("time (seconds)") pl.show()
以上是“Python3分析處理聲音數據的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。