我的代码参考了谷歌网站上粘贴的代码: https://cloud.google.com/storage/docs/uploading-objects
我正在尝试编写一个Python程序,该程序可以录制麦克风的单声道音频,将其转换为WAV文件,然后上传到GCS进行分析。我卡在上传到GC的部分。我不知道应该用什么来替换,因为我甚至不知道如何找到那个文件路径。然而,我知道我的存储桶名称是什么。它是“gcspeechstorage”(我创建的)。此外,上传文件到存储桶的那段代码对我来说非常模糊,我现在意识到谷歌的样板代码对我不起作用。我得到了一个 "google.api_core.exceptions.NotFound: 404 requested entity was not found"
错误。
如果有任何方法可以绕过这个问题,以便我可以上传超过一分钟的片段并进行分析,那就太好了。我的NLTK运行得很好。
我定义了gcs_uri等于 os.path.join('gs://<gcspeechstorage>/<file_path_inside_bucket>')
,但我知道这只是部分完成的。我不知道如何完成第二个参数。说实话,我甚至不确定代码的顺序是否正确。
...
预期结果:将WAV文件上传到GCS,然后检索并转录,最后进行情感分析。
实际结果:录制音频,然后崩溃,给我上述的404错误。
错误:
...
回答:
现在,看起来你正在将gcs_uri C:/Users/Dave/Desktop/mizu/output.wav
传递给你的应用程序,但那是一个本地文件,而不是GCS中的对象。你需要先将WAV文件上传到你的GCS存储桶,然后在调用 long_running_recognize
时引用那个对象。试试这样做:
upload_blob("C:/Users/Dave/Desktop/mizu/output.wav", "gcspeechstorage", "output.wav")
transcribe_gcs("gs://gcspeechstorage/output.wav")