import sounddevice as sd
import numpy as np
# 播放一个简单的正弦波声音
def play_sine_wave(frequency=440, duration=2, sampling_rate=44100):
"""
播放一个指定频率和持续时间的正弦波声音。
参数:
frequency -- 正弦波的频率 (默认 440 Hz)
duration -- 声音的持续时间(秒)(默认 2 秒)
sampling_rate -- 采样率 (默认 44100 Hz)
"""
t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)
data = 0.3 * np.sin(2 * np.pi * frequency * t) # 生成正弦波数据,音量控制在0.3
sd.play(data, samplerate=sampling_rate)
sd.wait() # 等待播放完成
# 录制音频并立即播放回去
def record_and_playback(duration=5, sampling_rate=44100):
"""
录制一段音频并立即播放回去。
参数:
duration -- 录制的持续时间(秒)(默认 5 秒)
sampling_rate -- 采样率 (默认 44100 Hz)
"""
print("开始录制...")
recording = sd.rec(int(duration * sampling_rate), samplerate=sampling_rate, channels=2, dtype='float64')
sd.wait() # 等待录制完成
print("录制完成,开始播放...")
sd.play(recording, samplerate=sampling_rate)
sd.wait() # 等待播放完成
print("播放完成")
if __name__ == "__main__":
# 选择要运行的功能
# play_sine_wave()
record_and_playback()
导入库:
sounddevice 用于处理音频输入输出。numpy 用于生成和处理音频数据。播放正弦波:
play_sine_wave 函数生成一个指定频率的正弦波,并通过 sounddevice 播放出来。np.linspace 生成时间轴,np.sin 生成正弦波数据。录制并回放:
record_and_playback 函数录制一段音频,并立即将其播放回去。sd.rec 进行录音,sd.play 播放录制的音频。sd.wait() 用于等待录音或播放完成。主程序:
play_sine_wave 或 record_and_playback 来演示功能。下一篇:python scrapy爬虫
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站