C# 无法通过Amazon Polly验证

C# 无法通过Amazon Polly验证,c#,amazon-web-services,text-to-speech,amazon-polly,C#,Amazon Web Services,Text To Speech,Amazon Polly,我一直在尝试做一个关于如何使用polly()的hello wold示例 我不想下载任何库。我只想用我的凭据向amazon web Services发出一个简单的http请求,并获取一个音频。可能吗 我已经在IAM上创建了一个用户,它如下所示: 这是我到目前为止所做的,它不会将文本转换为语音。我认为问题在于身份验证/ static void Main(string[] args) { var accessKeyId = @"I place in here my acces

我一直在尝试做一个关于如何使用polly()的hello wold示例

我不想下载任何库。我只想用我的凭据向amazon web Services发出一个简单的http请求,并获取一个音频。可能吗

我已经在IAM上创建了一个用户,它如下所示:

这是我到目前为止所做的,它不会将文本转换为语音。我认为问题在于身份验证/

static void Main(string[] args)
    {
        var accessKeyId = @"I place in here my access key";
        var secretKey = @"I place in here my secret key";

        //Amazon.Runtime.AWSCredentials credentials = new 
        AmazonPollyClient client = new AmazonPollyClient(accessKeyId, secretKey);

        // Create describe voices request.
        DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest();
        // Synchronously ask Amazon Polly to describe available TTS voices.
        DescribeVoicesResponse describeVoicesResult = client.DescribeVoices(describeVoicesRequest);
        List<Voice> voices = describeVoicesResult.Voices;


        // Create speech synthesis request.
        SynthesizeSpeechRequest synthesizeSpeechPresignRequest = new SynthesizeSpeechRequest();
        // Text
        synthesizeSpeechPresignRequest.Text = "Hello world!";
        // Select voice for synthesis.
        synthesizeSpeechPresignRequest.VoiceId = voices[0].Id;
        // Set format to MP3.
        synthesizeSpeechPresignRequest.OutputFormat = OutputFormat.Mp3;
        // Get the presigned URL for synthesized speech audio stream.
        var presignedSynthesizeSpeechUrl = client.SynthesizeSpeechAsync(synthesizeSpeechPresignRequest).GetAwaiter().GetResult();
        using (FileStream output = File.OpenWrite("hello_world.mp3"))
        {
            presignedSynthesizeSpeechUrl.AudioStream.CopyTo(output);
        }

        Console.Read();
    }
static void Main(字符串[]args)
{
var accessKeyId=@“我在这里放置我的访问密钥”;
var secretKey=@“我在这里放置我的密钥”;
//Amazon.Runtime.AWSCredentials凭据=新建
AmazonPollyClient=新的AmazonPollyClient(accessKeyId,secretKey);
//创建描述语音请求。
DescribeVoiceRequest DescribeVoicesRequest=新的DescribeVoicesRequest();
//同步要求Amazon Polly描述可用的TTS语音。
DescribeVoiceResponse describeVoicesResult=客户端。DescribeVoices(describeVoicesRequest);
列表语音=描述语音结果语音;
//创建语音合成请求。
SynthesSpeechRequest SynthesSpeechPreSignRequest=新的SynthesSpeechRequest();
//正文
synthezeSpeechPresignRequest.Text=“你好,世界!”;
//选择语音进行合成。
SynthezeSpeechPresignRequest.VoiceId=语音[0]。Id;
//将格式设置为MP3。
SynthezeSpeechPresignRequest.OutputFormat=OutputFormat.Mp3;
//获取合成语音音频流的预签名URL。
var presignedSynthesizeSpeechUrl=client.SynthesizeSpeechAsync(synthesizeSpeechPresignRequest.GetAwaiter().GetResult();
使用(FileStream output=File.OpenWrite(“hello_world.mp3”))
{
预先指定的合成器speechurl.AudioStream.CopyTo(输出);
}
Console.Read();
}

注意:为了编译这个示例,我必须添加nuget包
AWSSDK.Polly

您需要为凭证调用指定一个区域作为第三个参数-即RegionEndpoint.USEast1

即:


(这与它是一个免费帐户无关。)

它不起作用
不是一个有效的问题陈述。更具体一点。IAM用户是否有允许其使用Polly的权限策略?是的,它具有对Polly的完全访问权限。我刚刚注册了亚马逊网络服务。可能是因为我有一个免费帐户吗?
AmazonPollyClient client = new AmazonPollyClient("AKI5ZLVN6QXO123OJA", "4sYnPuAzMk/k07JA456728VbTpX4F5/FAKEGDiAKm", RegionEndpoint.USEast1);