改进Python声音功能以播放更短的声音

时间:2020-04-14 16:12:23

标签: python audio waveform

在下面的代码中,声音的最短可听长度为0.02秒。如果我尝试播放长度为0.01的声音,它们将变成几乎听不见的“ cra啪声”。有什么方法可以修改代码,以便我播放较短的声音?

增加采样率无济于事。

import turtle
import numpy as np
import simpleaudio as sa

SAMPLE_RATE = 44100


def get_sound(note, duration, volume=0.5):
    time_vector = np.linspace(0, duration, int(duration * SAMPLE_RATE), False)
    frequency = 220 * 2 ** (note / 48)
    # Generate audio samples
    audio = np.sin(frequency * time_vector * 2 * np.pi)
    # normalize to 16-bit range
    audio *= volume * 32767 / np.max(np.abs(audio))
    # convert to 16-bit data
    audio = audio.astype(np.int16)
    return audio


def loop():
    sound_obj = sa.play_buffer(left_sound, 1, 2, SAMPLE_RATE)
    sound_obj.wait_done()
    sound_obj = sa.play_buffer(right_sound, 1, 2, SAMPLE_RATE)
    sound_obj.wait_done()
    screen.ontimer(loop, 1000)


left_sound = get_sound(100, 0.02)
right_sound = get_sound(110, 0.02)
screen = turtle.Screen()
loop()

turtle.done()

0 个答案:

没有答案