使用Python实现录音功能

61 阅读1分钟
import sounddevice as sd
from scipy.io.wavfile import write
import numpy as np

# 录音参数设置
duration = 5  # 录音时长(秒)
samplerate = 44100  # 采样率
channels = 1  # 声道数

# 录音函数
def record_audio(duration, samplerate, channels):
    """
    录制音频

    参数:
        duration (float): 录音时长,单位为秒
        samplerate (int): 采样率
        channels (int): 声道数

    返回:
        numpy.ndarray: 录制的音频数据
    """
    print(f"开始录音,时长{duration}秒...")
    audio = sd.rec(int(samplerate * duration), samplerate=samplerate, channels=channels)
    sd.wait()  # 等待录音完成
    print("录音结束。")
    return audio


# 保存WAV文件函数
def save_wave_file(filename, data, samplerate):
    """
    将音频数据保存为 WAV 文件

    参数:
        filename (str): 要保存的文件名
        data (numpy.ndarray): 要保存的音频数据
        samplerate (int): 采样率

    返回:
        None
    """
    write(filename, samplerate, data)