python中如何录音
- 行业动态
- 2024-04-12
- 2096
在Python中录音,我们可以使用pyaudio库。pyaudio是一个用于录制和播放音频的Python库,它是基于PortAudio的跨平台库,PortAudio是一个用于音频I/O的跨平台库,支持多种操作系统,如Windows、macOS和Linux。
以下是一个简单的录音示例:
1、确保已经安装了pyaudio库,如果没有安装,可以使用以下命令进行安装:
pip install pyaudio
2、创建一个名为record_audio.py的Python文件,并添加以下代码:
import pyaudio import wave import sys def record_audio(filename, duration, channels=1, rate=44100, chunk=1024): audio_format = pyaudio.paInt16 p = pyaudio.PyAudio() stream = p.open(format=audio_format, channels=channels, rate=rate, input=True, frames_per_buffer=chunk) print("开始录音,请说话...") frames = [] for i in range(0, int(rate / chunk * duration)): data = stream.read(chunk) frames.append(data) print("录音结束,正在保存...") stream.stop_stream() stream.close() p.terminate() wf = wave.open(filename, 'wb') wf.setnchannels(channels) wf.setsampwidth(p.get_sample_size(audio_format)) wf.setframerate(rate) wf.writeframes(b''.join(frames)) wf.close() if __name__ == "__main__": if len(sys.argv) < 4: print("用法: python record_audio.py <输出文件名> <录音时长(秒)> [声道数] [采样率] [每次读取的帧数]") sys.exit(1) filename = sys.argv[1] duration = float(sys.argv[2]) channels = int(sys.argv[3]) if len(sys.argv) >= 4 else 1 rate = int(sys.argv[4]) if len(sys.argv) >= 5 else 44100 chunk = int(sys.argv[5]) if len(sys.argv) >= 6 else 1024 record_audio(filename, duration, channels, rate, chunk)
3、运行record_audio.py文件,指定输出文件名、录音时长、声道数、采样率和每次读取的帧数。
python record_audio.py output.wav 5 1 44100 1024
这将录制5秒钟的音频,并将其保存为output.wav文件,注意,录音时需要保持麦克风打开并说话,录音结束后,音频将被保存到指定的文件中。
注意:在某些操作系统上,可能需要安装PortAudio库才能正常使用pyaudio,在macOS上,可以使用以下命令安装PortAudio:
brew install portaudio withlibsndfile withavutil withflac withlibvorbis withlibogg withopus withsdl2 withportmidi withportsmf withportmixer withpulseaudio withalsa withjack withjpeg withlibshine withrtmpdump withlibtheora withlibvorbisenc withlibmp3lame withlibopencoreamrnb withlibopencoreamrwb withva withvideotoolbox withlibvoaacenc withfrei0r withlibtwolame withlibfdkaac withffmpeg withlibcaca withx264 withopenssl withoutnasm withoutdoxygen withoutgraphviz withoutqt withoutgtktest withoutexamples withouttests HEAD vd skipinstalled formula && brew link portaudio && sudo port v selfupdate && sudo port v install py27pyaudio || true
以上就是在Python中录音的方法,希望对您有所帮助!
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/383296.html