在python上开始录制之前的语音识别流延迟

2024-03-28 10:40:19 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试将音频流传输到语音识别服务时出现延迟。在

我有两个功能来处理这个任务, 第一个使用alsaaudio和“yield”将数据返回到调用函数。 第二个函数,使用我传递给它的url的请求头和记录函数。在

问题是从我调用requests函数的那一刻到它开始录制音频大约有半秒钟的延迟

下面是一个伪代码:

def listen():
    stream = audiostream()
    while user_speak:
        yield stream.read(chunksize)

def stream_speech():
    response = requests.post(url, data=listen(), headers, stream=true)

    if response.status_code == 200:
        print(response)

我认为问题在于请求打开到服务器的连接,然后才调用listen函数时的延迟。在

所以我想也许可以打开一个线程,它将块记录到一个队列中,主线程将使用队列调用requests函数。 但我不知道该怎么做,也许这里有人能帮我。在


Tags: 数据函数功能urlstream队列responsedef
1条回答
网友
1楼 · 发布于 2024-03-28 10:40:19

好吧,有许多低级的api,包括像asyncore这样的异步api,它允许您在根本不使用线程的情况下进行交互。在

我只需使用setperiodsize将alsaaudio中的缓冲区大小增加到大约0.5秒,然后使用更大的缓冲区。然后,您可以先开始录制,然后等待连接,同时alsa将准备第一个缓冲区。在

相关问题 更多 >