За последние 24 часа нас посетили 22394 программиста и 1027 роботов. Сейчас ищут 678 программистов ...

Как добавить метод сервис, который озвучивает текст на свой сайт

Тема в разделе "PHP для профи", создана пользователем Leonid777, 20 апр 2021.

  1. Leonid777

    Leonid777 Новичок

    С нами с:
    12 ноя 2020
    Сообщения:
    13
    Симпатии:
    0
    Как добавить на свой сайт сервис, который озвучивает текст. Например
    Yandex SpeechKit
     
  2. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    856
    Симпатии:
    132
  3. Leonid777

    Leonid777 Новичок

    С нами с:
    12 ноя 2020
    Сообщения:
    13
    Симпатии:
    0
    Не могу разобраться, как правильно использовать запрос
    --- Добавлено ---
    $folderId = "b1gvmob95yysaplct532"; # Идентификатор каталога - его я получил на своём аккаунте Yandex Cloud
    а вот $token = 'CggaATEVAgA...'; # IAM-токен - ни как не пойму откуда его получить?

    Код (Text):
    1. <?
    2.  
    3. const FORMAT_PCM = "lpcm";
    4. const FORMAT_OPUS = "oggopus";
    5.  
    6. $token = 'CggaATEVAgA...'; # IAM-токен
    7. $folderId = "b1gvmob95yysaplct532"; # Идентификатор каталога
    8. $url = "https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize";
    9. $post = "text=" . urlencode("Hello World") . "&lang=en-US&folderId=${folderId}&sampleRateHertz=48000&format=" . FORMAT_PCM;
    10. $headers = ['Authorization: Bearer ' . $token];
    11. $ch = curl_init();
    12.  
    13. curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    15. curl_setopt($ch, CURLOPT_URL, $url);
    16. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    17. curl_setopt($ch, CURLOPT_HEADER, false);
    18. if ($post !== false) {
    19.     curl_setopt($ch, CURLOPT_POST, 1);
    20.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    21. }
    22. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    23.  
    24.  
    25. $response = curl_exec($ch);
    26. if (curl_errno($ch)) {
    27.     print "Error: " . curl_error($ch);
    28. }
    29. if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200) {
    30.     $decodedResponse = json_decode($response, true);
    31.     echo "Error code: " . $decodedResponse["error_code"] . "\r\n";
    32.     echo "Error message: " . $decodedResponse["error_message"] . "\r\n";
    33. } else {
    34.     file_put_contents("speech.raw", $response);
    35. }
    36. curl_close($ch);
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
  5. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Мы все учились понемногу чему-нибудь и как-нибудь. Тащусь от обывателей сайта, которым лишь бы поржать. Только нах сервис, когда это на уровне js элементарно (но не во всех браузерах) решается:
    Код (Javascript):
    1. function voice(txt) {
    2.     var msg = new SpeechSynthesisUtterance(txt);
    3.     window.speechSynthesis.speak(msg);
    4. }
    --- Добавлено ---
    А по теме вопрошающего: таки да, гугл в помощь. А запрос использовать по пониманию, что в нём происходит. Я вижу ответ от яндекса в виде *.raw