亚马逊Amazon Polly文本转换语音PHP简明调用示例

北慕城南 提交于 2020-04-06 06:25:02

Amazon Polly使用深度学习将文本转换为逼真的语音 ,18年下半年更新支持了中文,现中文也只有Zhiyu一个播音员,Amazon Polly除了官方文档,网上的调用示例不是很多,下面我给大家展示一个。

本实例基于官方SynthesizeSpeech接口,接口地址https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-polly-2016-06-10.html#synthesizespeech,请先行安装AWS SDK for PHP版本 3 ,可以使用 composer require aws/aws-sdk-php 来安装当前版本3.133。

require_once(__DIR__."/vendor/autoload.php");

use Aws\Polly\PollyClient;  
use Aws\Exception\AwsException;  
use Aws\Polly\Exception\PollyException;

//设置帐号配置信息

$config = [  
    'version' => 'latest',  
    'region' => 'us-west-2',   
    'credentials' => [   
        'key' => 'XXXXXXXXXXXXXXXXXXXX',  
        'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',  
        ]  
];

$client_polly = new PollyClient($config);

try {  
    $result = $client_polly->synthesizeSpeech([  
        'OutputFormat' => "mp3",  
        'SampleRate' => "8000",  
        'Text' => "Hi,Welcome to Polly test",  
        'TextType' => 'text',    
        'VoiceId' => 'Emma' ,  
    ]);  
    $response  = $result['AudioStream']->getContents();  
    //  $response 返回的是文件流,可以用 file_put_contents 存入文件  
    file_put_contents('text.mp3', $response);    

} catch (PollyException $e) {  
     echo $e->getMessage() . "error";

}


以上实例TextType使用的的是text方式,也可以使用ssml方式开启添加停顿强调词语等功能。
下面是一段ssml格式的文本示例:


<speak>  
    Hi! My name is Amy.  
    <break time="3s"/>Welcome to the Amazon Polly demo.  
    Today is  a <emphasis level="strong">really good </emphasis>day  
</speak>


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!