Как получить гендерный голос из параметра URL в текстовом API Google в речь в PHP? - PullRequest
2 голосов
/ 28 мая 2019

Я построил API для преобразования текста в речь в php, используя облако Google.Я могу передать другие параметры, такие как высота звука, скорость речи, текст из параметра URL, но я просто хочу знать, как я могу сделать то же самое для голоса пола?

Я пытался передать его в виде строки или передатьцелый аргумент, но ни один из них не работает.

$synthesisInputText = (new SynthesisInput())->setText($_GET['text']);

            $voice = (new VoiceSelectionParams())
                ->setLanguageCode($_GET['lang']))
                // ->setName('en-IN-Wavenet-A')
                ->setSsmlGender(SsmlVoiceGender::FEMALE);

            $audioConfig = (new AudioConfig())
                ->setAudioEncoding(AudioEncoding::MP3)
                ->setPitch($_GET['pitch'])
                ->setSpeakingRate($_GET['speking_rate']);

            $response = $this->client->synthesizeSpeech($synthesisInputText, $voice, $audioConfig);

            $audioContent = $response->getAudioContent();

            file_put_contents($this->file,$audioContent);

Я могу получить все остальные параметры правильно, но я также хочу получить setSsmlGender(SsmlVoiceGender::$_GET['voice']) из параметра URL.Любая помощь будет здорово?

1 Ответ

0 голосов
/ 28 мая 2019

Используйте метод SsmlVoiceGender::value() для преобразования вашего ввода в правильное значение перечисления:

use Google\Cloud\TextToSpeech\V1\SsmlVoiceGender;

$genderInput = $_GET['voice'];
try {
    $gender = SsmlVoiceGender::value($genderInput);
} catch (\UnexpectedValueException $e) {
    // Invalid input. Hardcode a value?
    $gender = SsmlVoiceGender::MALE;
}

$voice->setSsmlGender($gender);

Убедитесь, что вы используете google/cloud-voice-text-to-speech v0.4.0 или выше. Если вы используете google/cloud, обязательно используйте v0.98.0 или выше.

...