Text-To-Speech przy użyciu Amazon Polly w PHP
Amazon Polly to ładnie wykonana usługa w chmurze, która pozwala nam konwertować tekst na mowę realistyczną. Ponadto Amazon Polly zapewnia przełomową poprawę jakości mowy dzięki nowemu podejściu do uczenia maszynowego. Oferują klientom najbardziej naturalne i ludzkie głosy zamiany tekstu na mowę.
Korzyści z korzystania z Amazon Polly obejmują:
- Wysoka jakość
- Małe opóźnienia
- Obsługa dużego portfolio języków i głosów
- Opłacalne
- Rozwiązanie w chmurze
Istnieje kilka aplikacji, w których przydaje się Amazon Polly. Niektóre z nich to – aplikacje takie jak czytniki grup dyskusyjnych. gry, platformy e-learningowe, aplikacje dla osób niedowidzących itp. Więcej informacji o tej usłudze można znaleźć w ich dokumentacji.
W tym artykule pokażę, jak przekonwertować tekst na mowę za pomocą Amazon Polly i PHP.
Konsola Amazon Polly
Jeśli nie chcesz budować aplikacji PHP, możesz bezpośrednio użyć konsoli Polly. Możesz uzyskać do niego dostęp, logując się do swojego konta AWS. Po zalogowaniu przejdź do konsoli Amazon Polly. Na tej stronie otrzymasz opcje dodawania mowy w formacie zwykłego tekstu lub SSML. Możesz wybrać region, identyfikator głosu i posłuchać przemówienia, a nawet pobrać je w formacie MP3.
Korzystanie z konsoli jest jedną z opcji, jeśli jesteś administratorem i nie chcesz nikomu udostępniać poświadczeń konta. Ale co, jeśli chcesz zbudować aplikację, która dokładnie wykonuje zadanie konwersji tekstu na mowę i pozwala pobierać MP3 z przekonwertowanej mowy.
Text-To-Speech przy użyciu Amazon Polly i PHP
Aby zbudować aplikację PHP dla Amazon Polly, musisz najpierw uzyskać poświadczenia bezpieczeństwa AWS. Możesz go uzyskać, logując się na konto AWS, a następnie klikając „Moje dane uwierzytelniające".
Po uzyskaniu poświadczeń zainstaluj pakiet AWS SDK dla PHP za pomocą Kompozytora. Uruchom poniższe polecenie, aby zainstalować bibliotekę.
composer require aws/aws-sdk-php
Po instalacji zbuduj formularz, który pozwoli użytkownikowi przesłać plik i wysłać go na serwer w celu przetworzenia.
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit" name="submit">Submit</button>
</form>
Jak wspomniano wcześniej, użytkownik może przekazywać mowę w formacie zwykłego tekstu lub SSML. Wolę używać SSML, który pozwala nam kontrolować generowaną mowę z dostarczonego tekstu. Używając SSML, możemy wstawić pauzę w tekście, zmienić tempo mowy, podkreślić określone słowa lub frazy itp. Przeczytaj więcej na ten temat w sekcji Używanie SSML. Zasadniczo musisz używać w tekście tagów dostarczonych przez SSML.
W tym samouczku buduję zwykły plik tekstowy z tagami SSML. Mój plik tekstowy wygląda następująco.
manekin.txt
<speak>
<prosody rate='medium'>Hi, I am Sajid. I do blogging at Artisans Web.</prosody>
</speak>
Następnie po przesłaniu formularza wgrany plik tekstowy zostanie przesłany do usługi w chmurze AWS, aw zamian pliki MP3 zostaną automatycznie pobrane. Napisz do niego kod w następujący sposób.
<?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();
}
}
?>
Zastąp symbole zastępcze rzeczywistymi wartościami. W powyższym kodzie przekazałem wartość ‘VoiceId’ to ‘Matthew’. „Matthew” to identyfikator głosu, który dodaje akcent mowy w języku angielskim (US) (en-US). Oczywiście użytkownik może wybrać dowolny preferowany identyfikator głosu. Otrzymasz listę dostępnych głosów na ich stronie Głosy w Amazon Polly.
Śmiało i przetestuj to. Po przesłaniu pliku tekstowego otrzymasz plik audio MP3 z tekstem.
Wszystko sprowadza się do konwersji tekstu na mowę za pomocą Amazon Polly w PHP. Chciałbym usłyszeć Twoje przemyślenia lub sugestie w sekcji komentarzy poniżej.
Powiązane artykuły
- Prześlij pliki do Amazon S3 za pomocą AWS PHP SDK
- Jak przesłać plik do S3 za pomocą systemu plików Laravel?