Перетворення тексту в мову за допомогою Amazon Polly у PHP
Amazon Polly – це чудово зроблений хмарний сервіс, який дозволяє нам перетворювати текст у реалістичну мову. Крім того, Amazon Polly забезпечує новаторські покращення якості мовлення завдяки новому підходу до машинного навчання. Вони пропонують клієнтам максимально природні та схожі на людину голоси перетворення тексту в мову.
Переваги використання Amazon Polly включають:
- Висока якість
- Низька затримка
- Підтримка великого асортименту мов та голосів
- Економічно ефективним
- Хмарне рішення
Є кілька додатків, де Amazon Polly може бути корисною. Деякі з них – додатки, такі як читачі новин. ігри, платформи електронного навчання, програми для людей із вадами зору тощо. Ви можете прочитати більше про цю послугу в їх документації.
У цій статті я покажу вам, як конвертувати текст у мову за допомогою Amazon Polly та PHP.
Консоль Amazon Polly
Якщо ви не хочете створювати PHP-програму, ви можете використовувати консоль Polly безпосередньо. Ви можете отримати доступ до нього, увійшовши у свій обліковий запис AWS. Після входу перейдіть до консолі Amazon Polly. На цій сторінці ви отримаєте опції для додавання мовлення у вигляді простого тексту або формату SSML. Ви можете вибрати регіон, ідентифікатор голосу та прослухати виступ або навіть завантажити його у форматі MP3.
Використання консолі – один із варіантів, якщо ви адміністратор і не хочете ні з ким ділитися обліковими даними облікового запису. Але що, якщо ви хочете створити програму, яка виконує точне завдання перетворення тексту в мову і дозволяє завантажувати MP3 з перетвореною мовою.
Перетворення тексту в мову за допомогою Amazon Polly та PHP
Щоб створити додаток PHP для Amazon Polly, спочатку потрібно отримати облікові дані безпеки AWS. Ви можете отримати його, увійшовши в обліковий запис AWS, а потім клацнути на «Мої облікові дані безпеки».
Отримавши свої облікові дані, встановіть AWS SDK для PHP за допомогою Composer. Виконайте наведену нижче команду для встановлення бібліотеки.
composer require aws/aws-sdk-php
Після встановлення створіть форму, яка дозволяє користувачеві завантажувати файл і відправляти його на сервер для його обробки.
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit" name="submit">Submit</button>
</form>
Як вже згадувалося раніше, користувач може передавати мовлення як у звичайному тексті, так і у форматі SSML. Я вважаю за краще використовувати SSML, який дозволяє нам контролювати генеруване мовлення з наданого тексту. Використовуючи SSML, ми можемо включити паузу в межах швидкості мовного тексту, зміни, підкреслити певні слова або фрази, і т.д. Детальніше про це на використання SSML. В основному, вам потрібно використовувати теги, надані SSML у вашому тексті.
Для цього підручника я створюю звичайний текстовий файл із тегами SSML. Мій текстовий файл такий.
dummy.txt
<speak>
<prosody rate='medium'>Hi, I am Sajid. I do blogging at Artisans Web.</prosody>
</speak>
Далі, після надсилання форми, завантажений текстовий файл буде відправлений у хмарну службу AWS, а у відповідь файли MP3 завантажаться автоматично. Напишіть код для нього наступним чином.
<?php
require_once "vendor/autoload.php";
use AwsPollyPollyClient;
if (isset($_POST['submit'])) {
try {
$config = [
'version' => 'latest',
'region' => 'YOUR_AWS_REGION',
'credentials' => [
'key' => 'ACCESS_KEY_ID',
'secret' => 'SECRET_ACCESS_KEY',
]
];
$client = new PollyClient($config);
$args = [
'OutputFormat' => 'mp3',
'Text' => file_get_contents($_FILES['file']['tmp_name']),
'TextType' => 'ssml',
'VoiceId' => 'Matthew', //pass preferred voice id here
];
$result = $client->synthesizeSpeech($args);
$resultData = $result->get('AudioStream')->getContents();
header('Content-length: '. strlen($resultData));
header('Content-Disposition: attachment; filename="text-to-speech.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
echo $resultData;
} catch(Exception $e) {
echo $e->getMessage();
}
}
?>
Замініть заповнювачі фактичними значеннями. У наведеному вище коді я передав значення для "VoiceId" – "Matthew". ‘Matthew’ – це голосовий ідентифікатор, який додає мовний наголос англійською (US) (en-US) мовою. Звичайно, користувач може вибрати будь-який бажаний голосовий ідентифікатор. Ви отримаєте список доступних голосів на їхній Голоси на сторінці Amazon Polly.
Вперед і випробуй це. Після завантаження вашого текстового файлу ви отримаєте MP3-аудіофайл вашого тексту.
Вся справа в перетворенні тексту в мовлення за допомогою Amazon Polly у PHP. Я хотів би почути ваші думки чи пропозиції у розділі коментарів нижче.
Пов’язані статті
- Завантажте файли на Amazon S3 за допомогою AWS PHP SDK
- Як завантажити файл на S3 за допомогою файлової системи Laravel