gpt4 book ai didi

python - 如何使用 boto3 从 Amazon Lex 响应中获取音频?

转载 作者:行者123 更新时间:2023-11-28 18:13:40 25 4
gpt4 key购买 nike

我在 AWS 中设置了一个 Amazon Lex 实例。

我可以使用 python 库 boto3 与它通信

我可以使用 client.post_text() 命令以及 client.post_content()

成功获取和发送响应

我可以看到有一个类型为 StreamingBodyaudioStream 对象附加到响应,但我似乎无法播放该流。我试过:

audio = response['audioStream']
audio.read()

但这似乎没有效果。很少有文档描述如何使用此对象。

我该如何实现?

最佳答案

我找到的最佳解决方案如下,使用 pygame 解析音频:

我从 Lex 获得响应并解析它以找到音频流,然后播放它。

Stream = response["audioStream"]

os.environ["SDL_VIDEODRIVER"] = "dummy"
pygame.init()
pygame.display.set_mode((1,1))
pygame.mixer.music.load(Stream)
pygame.mixer.music.play(0)

clock = pygame.time.Clock()
clock.tick(10)
while pygame.mixer.music.get_busy():
pygame.event.poll()
clock.tick(10)
pygame.display.quit()
pygame.quit()
return

注意:我将视频驱动程序设置为“虚拟”,这样我就可以通过 ssh 在我的设备上运行它。否则 pygame 需要一个 Xserver 实例(毕竟它的主要用途是运行游戏)。如果你在 headless 上运行 Lex,它也不会在后台运行(例如 screen 实例)

关于python - 如何使用 boto3 从 Amazon Lex 响应中获取音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com