可以直接从内存播放音频



我当前正在使用Microsoft TTS,我获得流音频,保存到文件,然后将命令发送到"流文件"中的星号。关注:

....
response = requests.post(url, data=body, headers=headers)
self.print("Got wave response")
with open("{}{}.{}".format(cachedir, filename, self.exten), 'wb') as fd:
    for chunk in response.iter_content(chunk_size=1024):
        self.print("Gravando....")
        fd.write(chunk)
    fd.close()
self.agi.stream_file('{}{}'.format(cachedir, filename))

我将避免在本地编写文件,将二进制文件直接播放。甚至写入文件,在第一个流媒体包中强制启动。我试图做这个最后一个想法,但是我得到了一个星号警报,指出文件为零字节。

任何建议?

这取决于OS如何处理文件。

在大多数情况下,您可以使用Linux管道,但是您仍然需要使用星号,这不是微不足道的,需要高的专业知识。

简单的方式只是在小部分中拆分文件,例如1秒的片段,然后在一对一的星号上播放。

或仅使用 os.fsync()每次写入后,但是很难维护。https://www.tutorialspoint.com/python/os_fsync.htm

相关内容

  • 没有找到相关文章

最新更新