亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python實現錄音小程序

發布時間:2021-04-09 12:43:45 來源:億速云 閱讀:145 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關如何使用python實現錄音小程序,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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

  • Wav音頻:聲道數,采樣頻率,量化位數

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

pip3 install pyaudio

python讀Wav文件:

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

關于“如何使用python實現錄音小程序”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

织金县| 东明县| 威海市| 蒲江县| 增城市| 本溪市| 同德县| 阿拉善右旗| 舒城县| 墨脱县| 兴和县| 常山县| 莱阳市| 新郑市| 苗栗县| 赞皇县| 西吉县| 奉化市| 上栗县| 绥棱县| 长沙市| 灯塔市| 杭锦后旗| 白城市| 沾化县| 石城县| 沂南县| 神池县| 宜州市| 宁阳县| 龙胜| 邵阳县| 司法| 资中县| 博客| 大余县| 靖远县| 大冶市| 和硕县| 铁岭县| 白山市|