首页 > 解决方案 > 使用 Flask 流式传输随机音频

问题描述

我有以下函数可以生成音调并将其写入 wav 文件

import struct
import numpy as np
from scipy import signal as sg
import wave
import math

# Parameters
sampleRate = 44100
frequency = 400
duration = 1


# define wave file
file = wave.open('test.wav', 'w')
file.setnchannels(1)
file.setsampwidth(2)
file.setframerate(sampleRate)



def generate(output, freq, dur):
    # create sine wave
    n_cycles = math.floor(freq*dur)  # number of cycle
    dur2 = n_cycles /freq            # adjusted duration
    samples = dur2*sampleRate
    x = np.arange(samples+1)         # want inclusive range
    sineWave = (32767.0*np.sin(2 * np.pi * freq * x / sampleRate))

    for i in sineWave:
        value = i
        data = struct.pack('<h', int(value))
        output.writeframesraw(data);


for x in range(1):
    generate(file, 1153.1, 1.0)


file.close();

现在我想用烧瓶流式传输它。

我想做的是播放从我的python脚本生成的随机“哔”声。我还想为用户提供启动和停止 Stream 的选项。

我怎样才能做到这一点?烧瓶可以吗?

标签: pythonwebflaskaudio

解决方案


推荐阅读