python录制视频和声音_Python实现播放和录制声音的功能
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 playsound
playsound('myfile.wav')
使用simpleaudio库
1、安装
$ pip install simpleaudio
2、使用播放音频
mport simpleaudio as sa
filename = '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 winsound
filename = 'myfile.wav'
winsound.PlaySound(filename, winsound.SND_FILENAME)
使用python-sounddevice库
1、安装
$ pip install sounddevice
2、使用播放音频
import sounddevice as sd
import soundfile as sf
filename = 'myfile.wav'
# Extract data and sampling rate from file
data, 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 AudioSegment
from pydub.playback import play
sound = AudioSegment.from_wav('myfile.wav')
play(sound)
默认情况下,pydub只支持播放wav格式音频。如果你想播放更多其他格式的音频文件。需要安装ffmpeg-python。
$ pip install ffmpeg-python
安装了ffmpeg后,播放MP3文件只需要在我们之前的代码中做一个小小的修改:
from pydub import AudioSegment
from pydub.playback import play
sound = AudioSegment.from_mp3('myfile.mp3')
play(sound)
使用pyaudio库
1、安装
$ pip install pyaudio
2、使用播放音频
import pyaudio
import wave
filename = '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 sd
from scipy.io.wavfile import write
fs = 44100 # Sample rate
seconds = 3 # Duration of recording
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2)
sd.wait() # Wait until recording is finished
write('output.wav', fs, myrecording) # Save as WAV file
2、使用pyaudio录音
import pyaudio
import wave
chunk = 1024 # Record in chunks of 1024 samples
sample_format = pyaudio.paInt16 # 16 bits per sample
channels = 2
fs = 44100 # Record at 44100 samples per second
seconds = 3
filename = "output.wav"
p = pyaudio.PyAudio() # Create an interface to PortAudio
print('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 seconds
for 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 interface
p.terminate()
print('Finished recording')
# Save the recorded data as a WAV file
wf = 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 AudioSegment
sound = AudioSegment.from_wav('myfile.wav')
sound.export('myfile.mp3', format='mp3')
2、使用pydub完成格式转换
from pydub import AudioSegment
sound = AudioSegment.from_wav('myfile.wav')
sound.export('myfile.mp3', format='mp3')
如果觉得内容还不错,分享给更多朋友,一起提升编程技能。
以上就是Python实现播放和录制声音的功能的详细内容,更多关于python 播放和录制声音的资料请关注python博客其它相关文章!
python录制视频和声音_Python实现播放和录制声音的功能相关推荐
- kazam录制视频在windows下无法播放解决办法
kazam 编码格式H.264 由于编码格式的原因,kazam在ubuntu下录制视频格式虽是MP4,但是在Windows下无法播放,效果无法展示,ppt也没得素材可用 办法 安装 ffmpeg 编码 ...
- python给视频加背景音乐_python中加背景音乐如何操作
在python中加背景音乐的方法: 1.导入pygame资源包: 2.修改音乐的file路径: 3.使用init()方法进行初始化: 4.使用load()方法添加音乐文件: 5.使用play()方法播 ...
- python给视频加背景音乐_python给视频添加背景音乐并改变音量的具体方法
用到给视频添加背景音乐,并改变音量.记录一下,与碰到同样问题的朋友共享. import subprocess inmp4='E:/PycharmProjects/untitled2/hecheng/1 ...
- linux网页没有声音,linux 系统播放网页内容没声音
安装了 Ubuntu Linux系统,在使用 Firefox打开 Flash是,光有图像没有声音,但播放MP3.视频等均正常,通过网上查找相关方法,一直无效,后来找到下面方法有效,留此作为存档. 打开 ...
- qq录制视频保存到哪了?qq录制视频怎么没了?找回方法在这
相信很多小伙伴都跟小编一样,使用qq录屏录制好后,结果就怎么也找不到录屏的文件了.经过小编一番研究,终于找到了qq录屏后视频文件的所保存的文件路径了.qq录制视频保存到哪了?别担心,下面小编就带大家一 ...
- python编辑视频字符化_Python 视频转字符画 - 进阶
这篇文章是 视频转字符动画-Python-60行代码 的后续,如果感兴趣,请先看看它. 0. 话说在前头 最新版使用了画布方式实现,和本文相比改动非常大,如果对旧版本的实现没啥兴趣,可以直接移步 vi ...
- python爬虫视频 下载 黑马_Python爬虫能爬视频么(python爬虫零基础视频教程)
Python爬虫能爬视频么 他视频没有的,但是跑了之后你要处理这个视频,就是问题的?你只需要,得到视频的播放地址,还是要把视频完整的下载到本地的.如果只是爬那个视频的下载地址,很简单,如果要下载的话, ...
- python 网站视频快进_python gstreamer实现视频快进/快退/循环播放功能
Gstreamer到底是个啥? GStreamer 是一个 基于pipeline的多媒体框架,基于GObject,以C语言写成. 应用GStreamer这个这个多媒体框架,你可以写出任意一种流媒体的应 ...
- python把视频取帧_Python批量截取视频某一帧
该文讲了如何调用opencv这个包对一个视频的某段时间进行均匀截多张图图(当然也可以是多个时间,也可以是不均匀时间,也可以是单张图片-都是可以自己定的呀) 大家都是成熟的Python人了,所以很多细节 ...
最新文章
- spring 组件基于注解的注册方式
- 软件开发必修课:你该知道的GRASP职责分配模式
- hahahahahah
- 飞鸽传书,去看了下WEBBROWSER的资料
- 文本加密算法matlab,matlab希尔加密算法
- 动图妙解高内聚与低耦合,觉得让你秒懂
- teamview外网连接服务器虚拟主机,利用路由器端口映射+桥接虚拟机搭建个人服务器...
- adb 连接手机 cannot connect to xxx.xxx.x.xx:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
- 推荐三款U盘烧写工具
- Python代码反向解析列线图nomogram自动计算各项得分及总得分
- 比亚迪半导体IPO再生波折:又被中止审核 红杉小米是股东
- 酞菁-氧化石墨烯(NiPc- NHCO-EGO)|齐岳生物提供酞菁定制材料
- ArcGIS模拟3D洪水
- 云锁和悬镜服务器哪个好,安全狗、悬镜、云锁、云帮手建议用哪个比较好?
- 计算机网络不可用感叹号,win7网络连接感叹号提示默认网关不可用怎么办
- Unity 5如何设置物体透明
- springcontext.xml 中方言是红色的_12种方言都能听懂!讯飞智能录音笔A1评测:小如钥匙坠+复古磁带造型...
- 第七周--项目1-静态成员应用
- python生词本查单词译文_GitHub - To-knowledge/Wudao-dict: 有道词典的命令行版本,支持英汉互查和在线查询。...
- 电脑如何备份文件,怎么同步?