【问题标题】:AWS Polly with PHP save .mp3AWS Polly 与 PHP 保存 .mp3
【发布时间】:2018-07-15 04:37:55
【问题描述】:

我需要一个脚本来获取我的文本,使用 AWS Polly API 将其转换为语音并将其作为 mp3 文件保存在我的服务器上。

目前,当我加载页面时,会出现一个播放器并播放语音剪辑,但没有下载任何文件。

我错过了什么?

require '../../../include/lib/aws/aws-autoloader.php';

// Creating Amazon Polly Client

use Aws\Polly\PollyClient;

$config = [
    'version' => 'latest',
    'region' => 'us-west-2', //region
    'credentials' => [
        'key' => 'MY_KEY',
        'secret' => 'my_AWS_secret',
    ]];

$client = new PollyClient($config);

// Converting Text to Speech via Polly API

$args = [
    'OutputFormat' => 'mp3',
    'Text' => "<speak><prosody rate='medium'>My text goes here..</prosody></speak>",
    'TextType' => 'ssml',
    'VoiceId' => "Joanna",
];

$result = $client->synthesizeSpeech($args);

$resultData = $result->get('AudioStream')->getContents();

// Listening the text
$size   = strlen($resultData); // File size
$length = $size;           // Content length
$start  = 0;               // Start byte
$end    = $size - 1;       // End byte
header('Content-Transfer-Encoding:chunked');
header("Content-Type: audio/mpeg");
header("Accept-Ranges: 0-$length");
header("Content-Range: bytes $start-$end/$size");
header("Content-Length: $length");
echo $resultData;


// Download the Text to Speech in MP3 Format

header('Content-length: ' . strlen($resultData));
header('Content-Disposition: attachment; filename="./myfile.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
echo $resultData;

【问题讨论】:

  • 如果您切换“收听文本”和“以 MP3 格式下载文本到语音”部分代码的顺序,它会下载但不能播放? (如果是这样,您需要发出 2 个单独的请求,您不能像这样对单个请求发送 2 个响应)
  • 哇,交换这两个确实成功了。为什么?

标签: amazon-web-services amazon-polly


【解决方案1】:

您一个接一个地发送 2 个响应。第一个将被处理,第二个最有可能被忽略。

基本上你不能在你已经发送内容之后发送标题。重构您的代码,以便每个请求只发送 1 个响应。

【讨论】:

    【解决方案2】:

    只需将输出保存在一个新文件中:

    file_put_contents("output.mp3", $resultData);
    

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2023-03-14
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      相关资源
      最近更新 更多