使用PHP SDK的Amazon Polly实施
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP SDK的Amazon Polly实施,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3038字,纯文字阅读大概需要5分钟。
内容图文
我正在尝试使用Amazon的PHP SDK将Amazon Polly Web服务集成到我的一个项目中.但是,当我使用PollyClient SDK时,客户端createSynthesizeSpeechPreSignedUrl()中仅实现了一种方法,它返回的是URL,而不是音频剪辑.当我尝试将URL粘贴到浏览器窗口中时,出现以下错误:“ message”:“请求中包含的安全令牌无效.”
请查看我的代码段:
error_reporting(E_ALL);
ini_set('display_errors', 1);
header('Content-Type: text/plain; charset=utf-8');
require_once 'app/aws/aws-autoloader.php';
use Aws\Polly\PollyClient;
class TestPolly extends Base {
public function newPolly () {
$connection = [
'region' => 'us-west-2',
'version' => 'latest',
'debug' => true,
'scheme' => 'http',
'credentials' => [
'key' => 'XXXXX',
'secret' => 'XXXXXX',
],
];
$client = new PollyClient($connection);
$polly_args = [
'OutputFormat' => 'mp3',
'Text' => 'My Input text',
'TextType' => 'text',
'VoiceId' => 'Brain',
];
$result = $client->synthesizeSpeech($polly_args);
echo '<pre>';
print_r($result);
exit;
}
}
我收到的PHP错误是:
Fatal error Uncaught exception 'Aws\Polly\Exception\PollyException' with message 'Error executing "SynthesizeSpeech on http://polly.us-west-2.amazonaws.com/v1/speech
AWS HTTP error: cURL error 7: Failed to connect to polly.us-west-2.amazonaws.com port 80: Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)'
exception 'GuzzleHttp\Exception\ConnectException' with message 'cURL error 7: Failed to connect to polly.us-west-2.amazonaws.com port 80: Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in D:\xampp\htdocs\sim_aws\aws\GuzzleHttp\Handler\CurlFactory.php:186
Stack trace:
有趣的是,我能够使用Node.js SDK生成音频剪辑??,因此,我很确定访问密钥和秘密密钥可以正常工作.
如果有人可以指出如何将PHP SDK与示例代码或有用链接一起使用,那就太好了.
解决方法:
这是一些示例代码,可在浏览器中将TTS下载为.mp3文件,关键部分是$result-> get(‘AudioStream’)-> getContents(),这是获取实际.mp3数据的方式.
require_once 'app/aws/aws-autoloader.php';
$awsAccessKeyId = 'XXXXXXX';
$awsSecretKey = 'XXXXXXX';
$credentials = new \Aws\Credentials\Credentials($awsAccessKeyId, $awsSecretKey);
$client = new \Aws\Polly\PollyClient([
'version' => '2016-06-10',
'credentials' => $credentials,
'region' => 'us-east-1',
]);
$result = $client->synthesizeSpeech([
'OutputFormat' => 'mp3',
'Text' => "My input text",
'TextType' => 'text',
'VoiceId' => 'Joanna',
]);
$resultData = $result->get('AudioStream')->getContents();
header('Content-Transfer-Encoding: binary');
header('Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3');
header('Content-length: ' . strlen($resultData));
header('Content-Disposition: attachment; filename="pollyTTS.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
echo $resultData;
至于链接,这里有一些:
> Polly文档:http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-polly-2016-06-10.html
>保利定价:https://aws.amazon.com/polly/pricing/
> AWS PHP SDK入门:http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/
内容总结
以上是互联网集市为您收集整理的使用PHP SDK的Amazon Polly实施全部内容,希望文章能够帮你解决使用PHP SDK的Amazon Polly实施所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。