Python3分析處理聲音數(shù)據(jù)的例子
將音頻文件拷貝到程序所在目錄即可。
如下所示:
#!/usr/bin/env python # encoding: utf-8 """ @Company:華中科技大學(xué)電氣學(xué)院聚變與等離子研究所 @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:處理聲音數(shù)據(jù) """ 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....") # 打開(kāi)WAV文檔,聲音文件 f = wave.open(r"speak.wav", "rb") fo = wave.open(r"jg.wav", "wb") fi = wave.open(r"back.wav", "rb") # 讀取波形數(shù)據(jù) # (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) # 將波形數(shù)據(jù)轉(zhuǎn)換為數(shù)組,并更改 print("update wav data....") wave_data = np.fromstring(str_data, dtype=np.short) fi_wave_data = np.fromstring(fi_str_data, dtype=np.short) # 復(fù)制并合并聲音 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() # 寫波形數(shù)據(jù)參數(shù) 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分析處理聲音數(shù)據(jù)的例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python實(shí)現(xiàn)視頻轉(zhuǎn)字符畫(huà)動(dòng)漫小工具
大家都知道視頻就是一幀一幀的圖片構(gòu)成的。那么想要實(shí)現(xiàn)將視頻轉(zhuǎn)換為字符畫(huà),就要將一部視頻全部逐幀拆解成圖片,然后采取和以前相同的將圖片轉(zhuǎn)換為字符畫(huà)的算法即可。本文將詳細(xì)為大家介紹如何實(shí)現(xiàn),需要的可以參考一下2021-12-12tensorboard實(shí)現(xiàn)同時(shí)顯示訓(xùn)練曲線和測(cè)試曲線
今天小編就為大家分享一篇tensorboard實(shí)現(xiàn)同時(shí)顯示訓(xùn)練曲線和測(cè)試曲線,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01tensorflow 實(shí)現(xiàn)打印pb模型的所有節(jié)點(diǎn)
今天小編就為大家分享一篇tensorflow 實(shí)現(xiàn)打印pb模型的所有節(jié)點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python實(shí)現(xiàn)通過(guò)shelve修改對(duì)象實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)通過(guò)shelve修改對(duì)象實(shí)例,是一個(gè)比較實(shí)用的技巧,需要的朋友可以參考下2014-09-09python opencv實(shí)現(xiàn)圖片缺陷檢測(cè)(講解直方圖以及相關(guān)系數(shù)對(duì)比法)
這篇文章主要介紹了python opencv 圖片缺陷檢測(cè),主要講解直方圖以及相關(guān)系數(shù)對(duì)比法,本文通過(guò)實(shí)例截圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Django之Mode的外鍵自關(guān)聯(lián)和引用未定義的Model方法
今天小編就為大家分享一篇Django之Mode的外鍵自關(guān)聯(lián)和引用未定義的Model方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12