我正在尝试创建一个 Flask 应用程序,该应用程序使用 GCP 的语音到文本转录 mp3 文件并将结果保存到云存储 (GCS)。(将Vue.js中的mp3文件上传到Flask)在这个过程中,我想把用户选择的mp3文件转换成flac文件,但是我不想保存到本地扔到speech-to-text或将其保存到 GCS。
任何模块都可以,但是我想把转换成GCS的音频文件不经过本地保存。
我尝试使用 pydub,它通常用于转换音频文件,但在选择转换前文件和保存转换后文件的位置时,相对路径是唯一可以采用的参数。我无法将 Flask 接收的 mp3 文件转换为 flac 文件并将它们保存到 GCS。
即使无法保存到 GCS,也可以将转换后的文件保存到变量中。我也做不到。
from pydub import AudioSegment
# (1)I can convert an audio file at the local.
sound = AudioSegment.from_mp3("example.mp3")
sound.export("example.flac", format="flac")
# (2)I CANNOT pass GCS URL as an argument
sound = AudioSegment.from_mp3("https://storage.googleapis.com/<bucket-name>/example.mp3")
sound.export("https://storage.googleapis.com/<bucket-name>/example.flac", format="flac")
# (3)I CANNOT written to a variable
sound = sound.export(format="flac")
sound.export("example.flac")
以上源代码
(1) 显示预期行为,转换后的example.flac保存在当前目录
(2) FileNotFoundError: [Errno 2] No such file or directory: ' https://storage.googleapis.com/ /npl_speech_2.mp3'
(3) AttributeError: '_io.BufferedRandom' 对象没有属性 'export'
最后,我想使用AWS Lambda,所以我想在不经过本地的情况下转换文件。