【发布时间】:2021-05-08 01:58:49
【问题描述】:
我正在尝试结合使用来自 Azure 的文本到语音转换和 movie.py 来为视频创建音频流。
result = synthesizer.speak_ssml_async(xml_string).get()
stream = AudioDataStream(result)
这个过程的输出是:
<azure.cognitiveservices.speech.AudioDataStream at 0x2320cb87ac0>
但是,movie.py 无法使用以下命令导入它:
audioClip = AudioFileClip(stream)
这给了我错误:
AudioDataStream' 对象没有属性 'endswith'
是否需要将 Azure Stream 转换为 .wav?我怎么做?我需要完成整个过程,而不需要在本地写入 .wav 文件(例如 stream.save_to_wav_file),而只使用内存流。
请问有人能找到灯吗?
【问题讨论】:
-
基于AudioFileClip的源代码:zulko.github.io/moviepy/_modules/moviepy/audio/io/…,必须指定文件名,它不提供从流中初始化的方法。您可以将流写入 .wav 文件并在本地使用后将其删除。
-
@StanleyGong 我发现有一种方法可以使用“from moviepy.audio.AudioClip import AudioArrayClip”并使用 AudioArrayClip instad of AudioFileClip,但它似乎不喜欢我的音频流。它告诉我“'numpy.uint8' 对象不可迭代”。我无法在本地保存 .wav 文件,因为这是使用 azure 函数运行的,没有存储空间,只有内存
-
其实Azure函数有自己的文件系统,可以保存临时文件。我认为这篇文章可能会有所帮助:stackoverflow.com/questions/63265669/…
-
@StanleyGong 感谢您的意见。我在我的 azurefunction 中使用 dir_path = tempfile.gettempdir() 来获取临时文件位置。但是,当我尝试执行 stream.save_to_wav_file(dir_path+ "temp.wav") 时,天蓝色函数失败
标签: azure memory text-to-speech moviepy