最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)錄音小程序

 更新時(shí)間:2020年10月26日 14:01:36   作者:MrYx  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)錄音小程序,實(shí)現(xiàn)錄音播放功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享了python實(shí)現(xiàn)錄音小程序的具體代碼,供大家參考,具體內(nèi)容如下

學(xué)習(xí)目標(biāo):掌握python的pyaudio擴(kuò)展包和Wave模塊錄制語音的方法

  • Wav音頻:聲道數(shù),采樣頻率,量化位數(shù)

python Wav包是自帶的,pyaudio需要下載

pip3 install pyaudio

python讀Wav文件:

fp=wave.open('','rb')
 nf=fp.getnframes()#獲取文件的采樣點(diǎn)數(shù)量
 print('sampwidth:',fp.getsampwidth())
 print('framerate:',fp.getframerate())
 print('channels:',fp.getnchannels())
 f_len=nf*2#文件長度計(jì)算,每個(gè)采樣2個(gè)字節(jié)
 audio_data=fp.readframes(nf)

python寫Wav文件:

def save_wave_file(filename,data):
 '''save the date to the wavfile'''
 wf=wave.open(filename,'wb')
 wf.setnchannels(channels)#聲道
 wf.setsampwidth(sampwidth)#采樣字節(jié) 1 or 2
 wf.setframerate(framerate)#采樣頻率 8000 or 16000
 wf.writeframes(b"".join(data))#https://stackoverflow.com/questions/32071536/typeerror-sequence-item-0-expected-str-instance-bytes-found
 wf.close()

利用PyAudio錄音:

def my_record():
 pa=PyAudio()
 stream=pa.open(format = paInt16,channels=1,
   rate=framerate,input=True,
   frames_per_buffer=NUM_SAMPLES)
 my_buf=[]
 count=0
 while count<TIME*20:#控制錄音時(shí)間
 string_audio_data = stream.read(NUM_SAMPLES)#一次性錄音采樣字節(jié)大小
 my_buf.append(string_audio_data)
 count+=1
 print('.')
 save_wave_file('01.wav',my_buf)
 stream.close()

利用PyAudio播放音頻

chunk=2014
def play():
 wf=wave.open(r"01.wav",'rb')
 p=PyAudio()
 stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=
 wf.getnchannels(),rate=wf.getframerate(),output=True)
 while True:
 data=wf.readframes(chunk)
 if data=="":break
 stream.write(data)
 stream.close()
 p.terminate()

完整錄音播放的demo

import wave
from pyaudio import PyAudio,paInt16

framerate=8000
NUM_SAMPLES=2000
channels=1
sampwidth=2
TIME=2
def save_wave_file(filename,data):
 '''save the date to the wavfile'''
 wf=wave.open(filename,'wb')
 wf.setnchannels(channels)
 wf.setsampwidth(sampwidth)
 wf.setframerate(framerate)
 wf.writeframes(b"".join(data))
 wf.close()

def my_record():
 pa=PyAudio()
 stream=pa.open(format = paInt16,channels=1,
   rate=framerate,input=True,
   frames_per_buffer=NUM_SAMPLES)
 my_buf=[]
 count=0
 while count<TIME*20:#控制錄音時(shí)間
 string_audio_data = stream.read(NUM_SAMPLES)
 my_buf.append(string_audio_data)
 count+=1
 print('.')
 save_wave_file('01.wav',my_buf)
 stream.close()

chunk=2014
def play():
 wf=wave.open(r"01.wav",'rb')
 p=PyAudio()
 stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=
 wf.getnchannels(),rate=wf.getframerate(),output=True)
 while True:
 data=wf.readframes(chunk)
 if data=="":break
 stream.write(data)
 stream.close()
 p.terminate()

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

更多用法詳見 pyaudio文檔

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)單線程多任務(wù)非阻塞TCP服務(wù)端

    python實(shí)現(xiàn)單線程多任務(wù)非阻塞TCP服務(wù)端

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)單線程多任務(wù)非阻塞TCP服務(wù)端的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 一些常見Python簡單算法易錯(cuò)題及答案總結(jié)

    一些常見Python簡單算法易錯(cuò)題及答案總結(jié)

    這篇文章總結(jié)了Python編程中的25個(gè)常見問題及其解答,涵蓋字符串操作、列表操作、字典操作、排序算法、日期時(shí)間處理、文件操作、異常處理等多個(gè)方面,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Python中查找缺失值的三種方法

    Python中查找缺失值的三種方法

    本文主要介紹了Python中查找缺失值的三種方法,包括pandas庫的isnull()方法、numpy庫的isnan()方法和scikit-learn庫的SimpleImputer類,感興趣的可以了解一下
    2023-11-11
  • django數(shù)據(jù)關(guān)系一對(duì)多、多對(duì)多模型、自關(guān)聯(lián)的建立

    django數(shù)據(jù)關(guān)系一對(duì)多、多對(duì)多模型、自關(guān)聯(lián)的建立

    這篇文章主要介紹了django數(shù)據(jù)關(guān)系一對(duì)多、多對(duì)多模型、自關(guān)聯(lián)的建立
    2019-07-07
  • 教你使用Python畫圣誕樹做浪漫的程序員

    教你使用Python畫圣誕樹做浪漫的程序員

    這不是圣誕節(jié)快到了,還不用Python繪制個(gè)圣誕樹和煙花讓女朋友開心開心,也算是親手做的,稍稍花了點(diǎn)心思,學(xué)會(huì)了趕緊畫給你的那個(gè)她吧
    2022-12-12
  • Python腳本實(shí)現(xiàn)下載合并SAE日志

    Python腳本實(shí)現(xiàn)下載合并SAE日志

    這篇文章主要介紹了Python腳本實(shí)現(xiàn)下載合并SAE日志,本文講解了代碼編寫過程,然后給出了完整代碼,需要的朋友可以參考下
    2015-02-02
  • Python向日志輸出中添加上下文信息

    Python向日志輸出中添加上下文信息

    這篇文章主要介紹了Python向日志輸出中添加上下文信息的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • Python Tornado 實(shí)現(xiàn)SSE服務(wù)端主動(dòng)推送方案

    Python Tornado 實(shí)現(xiàn)SSE服務(wù)端主動(dòng)推送方案

    SSE是Server-Sent Events 的簡稱,是一種服務(wù)器端到客戶端(瀏覽器)的單項(xiàng)消息推送,本文主要探索兩個(gè)方面的實(shí)踐一個(gè)是客戶端發(fā)送請(qǐng)求,服務(wù)端的返回是分多次進(jìn)行傳輸?shù)?直到傳輸完成,這種情況下請(qǐng)求結(jié)束后,考慮關(guān)閉SSE,所以這種連接可以認(rèn)為是暫時(shí)的,感興趣的朋友一起看看吧
    2024-01-01
  • 解析Python中的二進(jìn)制位運(yùn)算符

    解析Python中的二進(jìn)制位運(yùn)算符

    這篇文章主要介紹了解析Python中的二進(jìn)制位運(yùn)算符,是Python學(xué)習(xí)中的基本知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python?設(shè)計(jì)模式中的創(chuàng)建型建造者模式

    Python?設(shè)計(jì)模式中的創(chuàng)建型建造者模式

    本文介紹Python設(shè)計(jì)模式中的創(chuàng)建型建造者模式,其表現(xiàn)為復(fù)雜對(duì)象的創(chuàng)建與表現(xiàn)相分離,這樣,同一個(gè)過程就有不同的表現(xiàn),想要?jiǎng)?chuàng)建一個(gè)由多個(gè)部分組成的對(duì)象,而且它的構(gòu)成需要一步接一步的完成。只有當(dāng)各個(gè)部分都完成了,這個(gè)對(duì)象才完整,下文相關(guān)自來哦,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

平度市| 冀州市| 时尚| 荃湾区| 岳阳市| 黑龙江省| 宽城| 共和县| 淳化县| 墨脱县| 拉孜县| 通道| 福州市| 浙江省| 吐鲁番市| 枣强县| 象州县| 湛江市| 库尔勒市| 平安县| 河源市| 汉沽区| 舞阳县| 永寿县| 齐河县| 布拖县| 西藏| 全椒县| 高州市| 弥勒县| 凤凰县| 米易县| 藁城市| 永定县| 苍溪县| 平果县| 桑植县| 高邑县| 齐齐哈尔市| 镇雄县| 铜梁县|