Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python sounddevice

作者:翻成云恨雨愁   发布日期:2025-12-05   浏览:22

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()

解释说明:

  1. 导入库

    • sounddevice 用于处理音频输入输出。
    • numpy 用于生成和处理音频数据。
  2. 播放正弦波

    • play_sine_wave 函数生成一个指定频率的正弦波,并通过 sounddevice 播放出来。
    • 使用 np.linspace 生成时间轴,np.sin 生成正弦波数据。
    • 音量通过乘以一个小于1的系数(如0.3)来控制,防止过载失真。
  3. 录制并回放

    • record_and_playback 函数录制一段音频,并立即将其播放回去。
    • 使用 sd.rec 进行录音,sd.play 播放录制的音频。
    • sd.wait() 用于等待录音或播放完成。
  4. 主程序

    • 在主程序中可以选择调用 play_sine_waverecord_and_playback 来演示功能。

上一篇:python unicodedecodeerror

下一篇:python scrapy爬虫

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站