在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中录音的方法,希望对您有所帮助!
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。