国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python實(shí)現(xiàn)播放和錄制聲音的功能

瀏覽:19日期:2022-07-14 11:14:11

Python語(yǔ)言已經(jīng)無(wú)所不能了,今天就來(lái)分享一下,如何使用Python來(lái)錄制和播放音頻文件。

下面是一些可以播放和錄制音頻的Python第三方庫(kù):

playsound,支持MP3和WAV,目前只支持簡(jiǎn)單的回放。 simpleaudio,支持WAV,提供檢查文件是否仍在播放的功能。 winsound,支持WAV,只支持windows。 python-sounddevice和pyaudio為PortAudio庫(kù)提供綁定,以便跨平臺(tái)回放WAV文件。 pydub,需要pyaudio來(lái)播放音頻,但是安裝了ffmpeg之后,它允許您使用幾行代碼來(lái)播放各種音頻格式。

一、播放音頻文件

使用playsound庫(kù)

1、安裝

$ pip install playsound

2、使用播放音頻

from playsound import playsoundplaysound(’myfile.wav’)

使用simpleaudio庫(kù)

1、安裝

$ pip install simpleaudio

2、使用播放音頻

mport simpleaudio as safilename = ’myfile.wav’wave_obj = sa.WaveObject.from_wave_file(filename)play_obj = wave_obj.play()play_obj.wait_done() # Wait until sound has finished playing

使用winsound庫(kù)

如果您使用Windows,您可以使用內(nèi)置的winsound模塊來(lái)訪問(wèn)其基本的聲音播放機(jī)制。播放WAV文件可以在幾行代碼:

import winsoundfilename = ’myfile.wav’winsound.PlaySound(filename, winsound.SND_FILENAME)

使用python-sounddevice庫(kù)

1、安裝

$ pip install sounddevice

2、使用播放音頻

import sounddevice as sdimport soundfile as sffilename = ’myfile.wav’# Extract data and sampling rate from filedata, fs = sf.read(filename, dtype=’float32’) sd.play(data, fs)status = sd.wait() # Wait until file is done playing

使用pydub庫(kù)

1、安裝

$ pip install pydub

2、使用播放音頻

from pydub import AudioSegmentfrom pydub.playback import playsound = AudioSegment.from_wav(’myfile.wav’)play(sound)

默認(rèn)情況下,pydub只支持播放wav格式音頻。如果你想播放更多其他格式的音頻文件。需要安裝ffmpeg-python。

$ pip install ffmpeg-python

安裝了ffmpeg后,播放MP3文件只需要在我們之前的代碼中做一個(gè)小小的修改:

from pydub import AudioSegmentfrom pydub.playback import playsound = AudioSegment.from_mp3(’myfile.mp3’)play(sound)

使用pyaudio庫(kù)

1、安裝

$ pip install pyaudio

2、使用播放音頻

import pyaudioimport wavefilename = ’myfile.wav’chunk = 1024 wf = wave.open(filename, ’rb’)p = pyaudio.PyAudio()stream = p.open(format = p.get_format_from_width(wf.getsampwidth()), channels = wf.getnchannels(), rate = wf.getframerate(), output = True)data = wf.readframes(chunk)while data != ’’: stream.write(data) data = wf.readframes(chunk)stream.close()p.terminate()

您可能已經(jīng)注意到,使用pyaudio播放聲音比使用前面看到的庫(kù)播放聲音要復(fù)雜一些。這意味著如果您只想在Python應(yīng)用程序中播放聲音效果,那么它可能不是您的首選。

但是,由于pyaudio提供了更低級(jí)的控制,因此可以獲取和設(shè)置輸入和輸出設(shè)備的參數(shù),并檢查CPU負(fù)載和輸入或輸出延遲。

它還允許您在回調(diào)模式下播放和錄制音頻,在回調(diào)模式中,當(dāng)需要回放新數(shù)據(jù)或記錄可用數(shù)據(jù)時(shí),將調(diào)用指定的回調(diào)函數(shù)。如果您的音頻需要的不僅僅是簡(jiǎn)單的回放,那么這些選項(xiàng)使pyaudio成為一個(gè)合適的庫(kù)。

既然您已經(jīng)了解了如何使用許多不同的庫(kù)來(lái)播放音頻,現(xiàn)在就來(lái)看看如何使用Python自己錄制音頻。

二、錄音

Python -sounddevice和pyaudio庫(kù)提供了用Python錄制音頻的方法。

1 、使用python-sounddevice錄音

import sounddevice as sdfrom scipy.io.wavfile import writefs = 44100 # Sample rateseconds = 3 # Duration of recordingmyrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2)sd.wait() # Wait until recording is finishedwrite(’output.wav’, fs, myrecording) # Save as WAV file

2、使用pyaudio錄音

import pyaudioimport wavechunk = 1024 # Record in chunks of 1024 samplessample_format = pyaudio.paInt16 # 16 bits per samplechannels = 2fs = 44100 # Record at 44100 samples per secondseconds = 3filename = 'output.wav'p = pyaudio.PyAudio() # Create an interface to PortAudioprint(’Recording’)stream = p.open(format=sample_format, channels=channels, rate=fs, frames_per_buffer=chunk, input=True)frames = [] # Initialize array to store frames# Store data in chunks for 3 secondsfor i in range(0, int(fs / chunk * seconds)): data = stream.read(chunk) frames.append(data)# Stop and close the stream stream.stop_stream()stream.close()# Terminate the PortAudio interfacep.terminate()print(’Finished recording’)# Save the recorded data as a WAV filewf = wave.open(filename, ’wb’)wf.setnchannels(channels)wf.setsampwidth(p.get_sample_size(sample_format))wf.setframerate(fs)wf.writeframes(b’’.join(frames))wf.close()

三、保存和格式轉(zhuǎn)換

1、使用pydub保存音頻

from pydub import AudioSegmentsound = AudioSegment.from_wav(’myfile.wav’)sound.export(’myfile.mp3’, format=’mp3’)

2、使用pydub完成格式轉(zhuǎn)換

from pydub import AudioSegmentsound = AudioSegment.from_wav(’myfile.wav’)sound.export(’myfile.mp3’, format=’mp3’)

如果覺得內(nèi)容還不錯(cuò),分享給更多朋友,一起提升編程技能。

以上就是Python實(shí)現(xiàn)播放和錄制聲音的功能的詳細(xì)內(nèi)容,更多關(guān)于python 播放和錄制聲音的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 草草影院ccyycom浮力影院 | 国产精品亚洲第一区柳州莫青 | 午夜限制r级噜噜片一区二区 | a久久99精品久久久久久不 | 日韩视频欧美视频 | 亚洲在线一区二区三区 | 欧美一级片在线视频 | 国产欧美在线观看 | 男女午夜| 99香蕉网| 免费观看欧美一级高清 | 日韩中文字幕网站 | 2019在线亚洲成年视频网站 | 黄频免费影院 | 在线观看亚洲视频 | 欧美一级毛片美99毛片 | 亚洲精品成人一区二区 | 一个人看的www日本视频 | 国产在线一区二区三区 | 精品成人网 | 国产精品99久久免费观看 | 性欧美在线 | 免费一级毛片在线播放视频 | 免费看一级欧美毛片视频 | 欧美性高清视频免费看www | 一男一女搞黄 | 国产伦精品一区二区三区四区 | 欧美日韩综合精品一区二区三区 | 亚洲一区二区三区精品视频 | 99国产精品久久久久久久成人热 | 韩国免费特一级毛片 | 国产精品热久久毛片 | 色aaa| 久草在线视频在线观看 | 成人观看免费大片在线观看 | 麻豆第一页| 91精品国产乱码久久久久久 | 久久99精品久久久久久综合 | 久久久久久亚洲精品影院 | 日韩中文在线观看 | caoporen免费公开视频上传 |