电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python實現播放和錄制聲音的功能

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

Python語言已經無所不能了,今天就來分享一下,如何使用Python來錄制和播放音頻文件。

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

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

一、播放音頻文件

使用playsound庫

1、安裝

$ pip install playsound

2、使用播放音頻

from playsound import playsoundplaysound(’myfile.wav’)

使用simpleaudio庫

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庫

如果您使用Windows,您可以使用內置的winsound模塊來訪問其基本的聲音播放機制。播放WAV文件可以在幾行代碼:

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

使用python-sounddevice庫

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庫

1、安裝

$ pip install pydub

2、使用播放音頻

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

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

$ pip install ffmpeg-python

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

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

使用pyaudio庫

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()

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

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

它還允許您在回調模式下播放和錄制音頻,在回調模式中,當需要回放新數據或記錄可用數據時,將調用指定的回調函數。如果您的音頻需要的不僅僅是簡單的回放,那么這些選項使pyaudio成為一個合適的庫。

既然您已經了解了如何使用許多不同的庫來播放音頻,現在就來看看如何使用Python自己錄制音頻。

二、錄音

Python -sounddevice和pyaudio庫提供了用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()

三、保存和格式轉換

1、使用pydub保存音頻

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

2、使用pydub完成格式轉換

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

如果覺得內容還不錯,分享給更多朋友,一起提升編程技能。

以上就是Python實現播放和錄制聲音的功能的詳細內容,更多關于python 播放和錄制聲音的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 高压微雾加湿器_工业加湿器_温室喷雾-昌润空气净化设备 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 陕西鹏展科技有限公司| 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 建筑资质代办-建筑资质转让找上海国信启航 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 光照全温振荡器(智能型)-恒隆仪器 | 福建成考网-福建成人高考网| 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 |