云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

python中如何录音

在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中录音的方法,希望对您有所帮助!

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《python中如何录音》
文章链接:https://www.yunzhuji.net/jishujiaocheng/42902.html

评论

  • 验证码