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

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

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

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

學習目標:掌握python的pyaudio擴展包和Wave模塊錄制語音的方法

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

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

pip3 install pyaudio

python讀Wav文件:

fp=wave.open('','rb')
 nf=fp.getnframes()#獲取文件的采樣點數(shù)量
 print('sampwidth:',fp.getsampwidth())
 print('framerate:',fp.getframerate())
 print('channels:',fp.getnchannels())
 f_len=nf*2#文件長度計算,每個采樣2個字節(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:#控制錄音時間
 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:#控制錄音時間
 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文檔

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

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

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

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

    一些常見Python簡單算法易錯題及答案總結

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

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

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

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

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

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

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

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

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

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

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

    Python Tornado 實現(xiàn)SSE服務端主動推送方案

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

    解析Python中的二進制位運算符

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

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

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

最新評論

报价| 汉中市| 调兵山市| 多伦县| 岫岩| 灵武市| 周宁县| 德化县| 靖远县| 根河市| 龙泉市| 大悟县| 蒙阴县| 龙门县| 鄂伦春自治旗| 永城市| 苗栗市| 西乡县| 文山县| 永德县| 平度市| 嘉定区| 将乐县| 禹城市| 伊宁县| 大悟县| 和硕县| 泾源县| 绥宁县| 东乡族自治县| 新竹市| 始兴县| 怀仁县| 成安县| 响水县| 弥渡县| 新邵县| 鄯善县| 兴化市| 丽水市| 兴宁市|