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中如何录音
新闻来源:http://www.shufengxianlan.com/qtweb/news29/325229.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联