0

所以这个问题一开始可能看起来很愚蠢,但我想在等式的服务器/lambda 端做一些不同的事情,这就是我管道的结尾。我想从 c# 调用这个 lambda 函数,对文本做一些事情,然后最后调用 polly 函数并返回音频。但是,当我运行管道代码的末尾(如下)时,我得到:

Response:
{
  "errorMessage": "<botocore.response.StreamingBody object at 0x7f569f14abe0> is not JSON serializable",
  "errorType": "TypeError",
  "stackTrace": [
    [
      "/var/lang/lib/python3.6/json/__init__.py",
      238,
      "dumps",
      "**kw).encode(obj)"
    ],
    [
      "/var/lang/lib/python3.6/json/encoder.py",
      199,
      "encode",
      "chunks = self.iterencode(o, _one_shot=True)"
    ],
    [
      "/var/lang/lib/python3.6/json/encoder.py",
      257,
      "iterencode",
      "return _iterencode(o, 0)"
    ],
    [
      "/var/runtime/awslambda/bootstrap.py",
      110,
      "decimal_serializer",
      "raise TypeError(repr(o) + \" is not JSON serializable\")"
    ]
  ]
}

为什么我不能直接将 polly 返回给 lambda 函数的内容返回给用户?

拉姆达代码:

def lambda_handler(event, context):
    client = boto3.client('polly')
    response = client.synthesize_speech(
        OutputFormat='mp3',
        Text="Hello world, let's dance!",
        TextType='text',
        VoiceId='Salli'
    )
    return response
4

0 回答 0