【问题标题】:Need help decoding a WAV file email attachment需要帮助解码 WAV 文件电子邮件附件
【发布时间】:2019-05-18 11:22:07
【问题描述】:

我正在将 Google App Engine 用于基础架构,并且我正在尝试解码附加的 .WAV 文件并将其解码为字符串以传递给谷歌云的语音到文本 api。

这是我的代码,我不知道该怎么做。我尝试使用“base64”或“有效负载中的编码属性”进行解码,但我不断收到此错误:“UnicodeDecodeError: 'utf8' codec can't decode byte 0xc6 in position 4: invalid continuation byte”

我用于测试的 .WAV 文件已使用在线 wav 到 base64 解码器正确解码,但由于某种原因它不适用于此代码。

def receive(self, mail_message):

    if hasattr(mail_message, 'attachments'):
        file_name = ""
        file_contents = ""
        for filename, filecontents in mail_message.attachments:
            file_name = filename
            file_contents = filecontents.payload.decode(filecontents.encoding)

【问题讨论】:

  • 你不能像RecognitionAudio(content=filecontents)一样直接传递字节吗?为什么要解码?
  • 感谢您的快速回复。 @snakecharmerb
    dsf
    ------=_Part_4218024_179197831.1558180999159-- ------=_Part_4218025_939837478.1558180999161 内容类型:音频/ wav 内容传输编码:base64 内容处置:附件; filename="brooklyn.wav" 内容 ID:
  • @LukaszTracewski 好点,但我使用的是 HTTP api,所以需要将其解码为字符串/base64 为 json 格式。 :( 但是,是的,如果我不能让它工作,我可能会使用客户端库
  • 也许然后base64.b64encode(filecontents)?我不知道这是否有任何启发,但这是我在 AWS 上使用 WAV 的方式:github.com/tracek/audio-explorer/blob/…
  • @LukaszTracewski:刚试过,没有收到错误,但语音到文本 api 正在抱怨。我检查了在线生成的base64字符串,似乎与base64.b64encode(filecontents)有很大不同。 { "error": { "code": 400, "message": "Invalid recognition 'config': bad encoding..", "status": "INVALID_ARGUMENT" } }

标签: python google-app-engine decode wav google-app-engine-python


【解决方案1】:

filecontents 不需要任何解码:它已经采用正确的格式(编码为 base64)并准备好使用语音到文本 api 进行进一步处理(如 cmets 部分所述)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    相关资源
    最近更新 更多