根据报错信息,可以看出Amazon Polly.Presigner期望接收0-1个参数,但实际传入了2个参数。为了解决这个问题,需要检查代码并确保只传入一个参数。
以下是一种可能的解决方法:
import boto3
# 创建 Amazon Polly 客户端
polly_client = boto3.client('polly', region_name='us-east-1')
# 设置要转换为语音的文本
text = "Hello, how are you?"
# 创建 Presigner 对象并传入 Amazon Polly 客户端
presigner = polly_client.generate_presigned_url('synthesize_speech', Params={'Text': text, 'OutputFormat': 'mp3', 'VoiceId': 'Joanna'})
# 打印生成的预签名 URL
print(presigner)
上述代码中,我们通过boto3.client方法创建了一个Amazon Polly客户端,然后设置了要转换为语音的文本。最后,我们调用generate_presigned_url方法来生成预签名URL,该方法只传递一个参数synthesize_speech,其他参数通过Params字典传递。注意,如果你使用了不同的语音ID或输出格式,请根据需要进行修改。
请确保你已经安装了boto3库,并且已正确配置了AWS凭证。