humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

text_to_speech

text_to_speech($text,$output_path,$method="api",$voice="",$model="tts-1",$api_key="",$timeout=60); - Преобразовать текст в звук через OpenAI API или локальные инструменты (piper-tts)

Функция на вход принимает параметры:

  • $text – текст для преобразования
  • $output_path – путь к выходному аудиофайлу
  • $method – метод преобразования ("api" по умолчанию или "local")
  • $voice – голос для синтеза (для api: "alloy", "echo", "fable", "onyx", "nova", "shimmer", по умолчанию "alloy"; для local: имя модели голоса, по умолчанию "ru_RU-denis-medium")
  • $model – модель для api ("tts-1" или "tts-1-hd", по умолчанию "tts-1")
  • $api_key – ключ OpenAI API (если не указан, берется из настроек)
  • $timeout – таймаут выполнения в секундах (по умолчанию 60)

    После выполнения функции возвращаемое значение будет равно одному из двух :
  • true – успешно
  • false – не удалось

    Пример использования
    <?php
    // Scenario: Convert text to speech using various methods and voices
    
    $xhe_host = getenv("RPABOT_HOST_URL");
    // Connect functional objects if not already connected
    if (!isset($path)){
      $path = "../../../Templates/init.php";
      require($path);
    }
    // info
    echo "\n<span >sound->" . basename (__FILE__) . "</span>\n";
    
    // Example 1: Convert text to speech using API (default method)
    // Input data
    $text1 = "Hello, this is a test message.";
    $outputFile1 = "test/tts_api_output.mp3";
    
    echo("\n\nExample 1. Convert text to speech using API (default method): ");
    $result1 = SYSTEM::$sound->text_to_speech($text1, $outputFile1);
    
    if ($result1) {
        echo("true\n");
    } else {
        echo("false\n");
    }
    
    // Example 2: Convert text to speech using API with specified voice
    // Input data
    $text2 = "Привет, это тестовое сообщение.";
    $outputFile2 = "test/tts_api_voice.mp3";
    $method2 = "api";
    $voice2 = "nova";
    
    echo("\n\nExample 2. Convert text to speech using API with specified voice: ");
    $result2 = SYSTEM::$sound->text_to_speech($text2, $outputFile2, $method2, $voice2);
    
    if ($result2) {
        echo("true\n");
    } else {
        echo("false\n");
    }
    
    // Example 3: Convert text to speech using local method (piper-tts)
    // Input data
    $text3 = "Test message for local TTS.";
    $outputFile3 = "test/tts_local_output.wav";
    $method3 = "local";
    
    echo("\n\nExample 3. Convert text to speech using local method (piper-tts): ");
    $result3 = SYSTEM::$sound->text_to_speech($text3, $outputFile3, $method3);
    
    if ($result3) {
        echo("true\n");
    } else {
        echo("false\n");
    }
    
    // Example 4: Convert text to speech using local method with specified voice model
    // Input data
    $text4 = "Тестовое сообщение для локального синтеза.";
    $outputFile4 = "test/tts_local_voice.wav";
    $method4 = "local";
    $voice4 = "ru_RU-denis-medium";
    
    echo("\n\nExample 4. Convert text to speech using local method with specified voice model: ");
    $result4 = SYSTEM::$sound->text_to_speech($text4, $outputFile4, $method4, $voice4);
    
    if ($result4) {
        echo("true\n");
    } else {
        echo("false\n");
    }
    
    // Quit the application
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:5006"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>sound.text_to_speech</font><hr>")
    
    # 1 
    echo("1. Преобразуем текст в звук через API (метод по умолчанию) : ")
    result = sound.text_to_speech("Hello, this is a test message.", "test/tts_api_output.mp3")
    echo("true" if result else "false")
    echo("\n")
    
    # 2 
    echo("2. Преобразуем текст в звук через API с указанием голоса : ")
    result = sound.text_to_speech("Привет, это тестовое сообщение.", "test/tts_api_voice.mp3", "api", "nova")
    echo("true" if result else "false")
    echo("\n")
    
    # 3 
    echo("3. Преобразуем текст в звук через локальный метод (piper-tts) : ")
    result = sound.text_to_speech("Test message for local TTS.", "test/tts_local_output.wav", "local")
    echo("true" if result else "false")
    echo("\n")
    
    # 4 
    echo("4. Преобразуем текст в звук через локальный метод с указанием модели голоса : ")
    result = sound.text_to_speech("Тестовое сообщение для локального синтеза.", "test/tts_local_voice.wav", "local", "ru_RU-denis-medium")
    echo("true" if result else "false")
    echo("\n")
    
    # конец
    echo("<hr><br>")
    
    # Quit
    app.quit()
    #region using
    
    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    
    using XHE;
    using XHE.XHE_DOM;
    using XHE.XHE_System;
    using XHE.XHE_Window;
    using XHE.XHE_Web;
    
    #endregion
    
     class Program:XHEScript
     {
    	  static void Main(string[] args)
    	  {
    			// init XHE
    			server = Environment.GetEnvironmentVariable("RPABOT_HOST_URL");
    			InitXHE();
    
    			// начало
    			echo("<hr><font color=blue>sound.text_to_speech</font><hr>");
    				
    			// 1 
    			echo("1. Преобразуем текст в звук через API (метод по умолчанию) : ");
    			var result = sound.text_to_speech("Hello, this is a test message.", "test/tts_api_output.mp3").Result;
    			echo(result ? "true" : "false");
    			echo("\n");
    
    			// 2 
    			echo("2. Преобразуем текст в звук через API с указанием голоса : ");
    			result = sound.text_to_speech("Привет, это тестовое сообщение.", "test/tts_api_voice.mp3", "api", "nova").Result;
    			echo(result ? "true" : "false");
    			echo("\n");
    
    			// 3 
    			echo("3. Преобразуем текст в звук через локальный метод (piper-tts) : ");
    			result = sound.text_to_speech("Test message for local TTS.", "test/tts_local_output.wav", "local").Result;
    			echo(result ? "true" : "false");
    			echo("\n");
    
    			// 4 
    			echo("4. Преобразуем текст в звук через локальный метод с указанием модели голоса : ");
    			result = sound.text_to_speech("Тестовое сообщение для локального синтеза.", "test/tts_local_voice.wav", "local", "ru_RU-denis-medium").Result;
    			echo(result ? "true" : "false");
    			echo("\n");
    
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:5006";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>sound.text_to_speech</font><hr>");
    
    // 1 
    echo("1. Преобразуем текст в звук через API (метод по умолчанию) : ");
    var result = sound.text_to_speech("Hello, this is a test message.", "test/tts_api_output.mp3");
    echo(result ? "true" : "false");
    echo("\n");
    
    // 2 
    echo("2. Преобразуем текст в звук через API с указанием голоса : ");
    var result = sound.text_to_speech("Привет, это тестовое сообщение.", "test/tts_api_voice.mp3", "api", "nova");
    echo(result ? "true" : "false");
    echo("\n");
    
    // 3 
    echo("3. Преобразуем текст в звук через локальный метод (piper-tts) : ");
    var result = sound.text_to_speech("Test message for local TTS.", "test/tts_local_output.wav", "local");
    echo(result ? "true" : "false");
    echo("\n");
    
    // 4 
    echo("4. Преобразуем текст в звук через локальный метод с указанием модели голоса : ");
    var result = sound.text_to_speech("Тестовое сообщение для локального синтеза.", "test/tts_local_voice.wav", "local", "ru_RU-denis-medium");
    echo(result ? "true" : "false");
    echo("\n");
    
    // конец
    echo("\n");
    
    // Quit
    app.quit();

    =============================================
    sound    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .