Сохраните mp3-файл AWS Polly на S3 - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь отправить текст в AWS Polly для преобразования в речь, а затем сохранить этот mp3-файл на S3.Эта часть, кажется, работает сейчас.

// Send text to AWS Polly
$client_polly = new Aws\Polly\PollyClient([
    'region' => 'us-west-2',
    'version' => 'latest',
    'credentials' => [
        'key' => $aws_useKey,
        'secret' => $aws_secret,
    ]
]);

$text = 'Test. Test. This is a sample text to be synthesized.';
$voice = 'Matthew';

 $result_polly = $client_polly->startSpeechSynthesisTask([
    'Text' => $text,
    'TextType' => 'text',
    'OutputFormat' => 'mp3',
    'OutputS3BucketName' => $aws_bucket,
    'OutputS3KeyPrefix' => 'files/audio/,
    'VoiceId' => $voice,
    'ACL' => 'public-read'
]);


echo $result_polly['ObjectURL'];

Я также пытаюсь выполнить пару других вещей:

  1. Сделать mp3-файл общедоступным.В настоящее время мне нужно перейти на консоль AWS, чтобы нажать кнопку «Сделать общедоступной».Кажется, что 'ACL' => 'public-read' не работает для меня

  2. Мне нужно вернуть полный URL-адрес mp3-файла.По какой-то причине $ result_polly ['ObjectURL'];не получает никакого значения.

Что мне не хватает?

1 Ответ

1 голос
/ 10 мая 2019

В StartSpeechSynthesisTask вызове :

нет поля ACL
$result = $client->startSpeechSynthesisTask([
    'LanguageCode' => 'arb|cmn-CN|cy-GB|da-DK|de-DE|en-AU|en-GB|en-GB-WLS|en-IN|en-US|es-ES|es-MX|es-US|fr-CA|fr-FR|is-IS|it-IT|ja-JP|hi-IN|ko-KR|nb-NO|nl-NL|pl-PL|pt-BR|pt-PT|ro-RO|ru-RU|sv-SE|tr-TR',
    'LexiconNames' => ['<string>', ...],
    'OutputFormat' => 'json|mp3|ogg_vorbis|pcm', // REQUIRED
    'OutputS3BucketName' => '<string>', // REQUIRED
    'OutputS3KeyPrefix' => '<string>',
    'SampleRate' => '<string>',
    'SnsTopicArn' => '<string>',
    'SpeechMarkTypes' => ['<string>', ...],
    'Text' => '<string>', // REQUIRED
    'TextType' => 'ssml|text',
    'VoiceId' => 'Aditi|Amy|Astrid|Bianca|Brian|Carla|Carmen|Celine|Chantal|Conchita|Cristiano|Dora|Emma|Enrique|Ewa|Filiz|Geraint|Giorgio|Gwyneth|Hans|Ines|Ivy|Jacek|Jan|Joanna|Joey|Justin|Karl|Kendra|Kimberly|Lea|Liv|Lotte|Lucia|Mads|Maja|Marlene|Mathieu|Matthew|Maxim|Mia|Miguel|Mizuki|Naja|Nicole|Penelope|Raveena|Ricardo|Ruben|Russell|Salli|Seoyeon|Takumi|Tatyana|Vicki|Vitoria|Zeina|Zhiyu', // REQUIRED
]);

Следовательно, вам нужно будет либо сделать еще один вызов в Amazon S3, чтобы изменить ACL объекта, или использовать Amazon S3 Bucket Policy , чтобы сделать корзину (или путь внутри корзины) общедоступной. .

Выходное местоположение указывается в поле OutputUri ( NOT OutputUrl - URI против URL).

...