如何在 Gstreamer 中流式传输音频 (Python)

How to stream audio in Gstreamer (Python)

我正在制作一个 python 应用程序,它使用 ibm cloud Watson TTS 将文本转换为音频,然后 return 使用

的音频
content = watson_tts.synthesize(text, voice), accept=format).get_result().content

然后我想获取此内容并使用 Gstreamer 进行流式传输,而不将其保存到文件中。 我知道如何使用这个从 uri 播放文件:

player = Gst.ElementFactory.make("playbin", "player")
player.set_property("uri", uri)
player.set_state(Gst.State.PLAYING)

但这不是我想要的, 我想要的是无需下载就可以直接播放音频

执行后

content = watson_tts.synthesize(text, voice), accept=format).get_result()

合成音频已经 "downloaded" 来自 IBM 的服务,所以我认为最好说“...不保存到文件”而不是 "what I want is being able to stream the audio directly without downloading"。

无论如何...为了 "programmatically" 使用来自 Python 的 content 对象的(音频)字节馈送 gstreamer 的管道,您可以利用 appsrc 元素。

例如管道可以这样实现

它会生成 MPEG Transport Streamaac 通过 UDP 流式传输的编码音频。