首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有什么办法,我可以录制来自我的电脑的声音,并将其保存为wav或mp3文件在python?

是的,你可以使用Python中的音频处理库来录制来自你的电脑的声音并将其保存为wav或mp3文件。一个常用的库是pyaudio。

下面是一个示例代码,展示了如何使用pyaudio录制音频并将其保存为wav文件:

代码语言:txt
复制
import pyaudio
import wave

# 定义录音参数
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

# 初始化PyAudio
audio = pyaudio.PyAudio()

# 打开音频流
stream = audio.open(format=FORMAT,
                    channels=CHANNELS,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)

print("开始录音...")

# 缓存音频数据
frames = []

# 录制音频
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("录音完成!")

# 停止音频流
stream.stop_stream()
stream.close()
audio.terminate()

# 保存音频文件
wave_file = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wave_file.setnchannels(CHANNELS)
wave_file.setsampwidth(audio.get_sample_size(FORMAT))
wave_file.setframerate(RATE)
wave_file.writeframes(b''.join(frames))
wave_file.close()

print("音频文件保存成功:", WAVE_OUTPUT_FILENAME)

此代码会录制5秒钟的音频并将其保存为output.wav文件。你可以根据自己的需求更改录音时长和输出文件名。

如果你希望将音频保存为mp3文件,可以使用第三方库pydub来进行转换。下面是一个示例代码,展示了如何将录制的音频从wav格式转换为mp3格式:

代码语言:txt
复制
from pydub import AudioSegment

# 加载wav文件
audio = AudioSegment.from_wav('output.wav')

# 保存为mp3文件
audio.export('output.mp3', format='mp3')

print("音频文件保存成功:output.mp3")

你可以通过上述代码录制和保存音频,并根据需要将其转换为wav或mp3格式的文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(一百八十九)利用LAME录制MP3音频

    Android常用的录音工具有两种,分别是MediaRecorder和AudioRecord,前者用于录制普通音频,后者用于录制原始音频。然而无论是普通音频的amr和aac格式,还是原始音频的pcm格式,都不能在电脑上直接播放,也不能在苹果手机上播放,因为它们属于安卓手机的定制格式,并非通用的音频格式。若想让录音文件放之四海而皆能播放,就得事先将其转为通用的MP3格式,虽然Android官方的开发包不支持MP3转换,不过借助第三方的LAME库,能够将原始音频转存为MP3文件。 LAME是一个高质量的MP3编码器,它采用C/C++代码开发,需要通过JNI技术引入到App工程。LAME源码的下载页面为https://lame.sourceforge.io/download.php,笔者找到的最新版本是3.100,先解压下载完成的源码包,再按照下列步骤依次调整源码细节: 1、把源码包里面的libmp3lame目录整个复制到App模块的jni目录下; 2、把include目录下的lame.h头文件复制到jni\libmp3lame目录下; 3、打开jni\libmp3lame下面的set_get.h,把这行代码

    01
    领券