Задержка преобразования текста в речь Google

Я создаю голосовое приложение в реальном времени, использующее службу Google Text-To-Speech. Однако я получаю задержки от 600 до 1100 мс, что слишком медленно для моего приложения. Звук длится всего около 3 секунд, как я могу это улучшить? (Эта задержка является мерой того, сколько времени мне потребуется, чтобы отправить запрос, а затем получить звук).

ОБНОВЛЕНИЕ

Код, который я использую:

//I call this at the start of my program
TTSclient = TextToSpeechClient.Create();

//This is the method that I call everytime I make a TTS call in my program
public static Google.Protobuf.ByteString MakeTTS(string text)
    {
        SynthesisInput input = new SynthesisInput
        {
            Text = text
        };
        VoiceSelectionParams voice = new VoiceSelectionParams
        {
            LanguageCode = "en-AU",
            Name = "en-AU-Wavenet-A"
        };
        AudioConfig config = new AudioConfig
        {
            AudioEncoding = AudioEncoding.Linear16,
            SampleRateHertz = 16000,
            SpeakingRate = 0.9
        };
        var TTSresponse = TTSclient.SynthesizeSpeech(new SynthesizeSpeechRequest
        {
            Input = input,
            Voice = voice,
            AudioConfig = config
        });
        return TTSresponse.AudioContent;
    }

Спасибо


person Harry Stuart    schedule 13.09.2018    source источник


Ответы (1)


Я рекомендую сначала проверить медиану задержки по методу API в метрике. страница TTS API. Если вы видите, что задержка составляет от 600 до 1100 мс, то я не вижу особого смысла, поскольку все запросы выполняются синхронно, а поскольку это общий ресурс, SLA для этих API касается только доступности, а не задержки.

Если результаты, которые вы получаете там, намного ниже, то я могу предположить только две вещи, которые могут замедлить ваши результаты: собственная задержка сети или какая-либо дополнительная обработка. Если последний случай, то вам придется попробовать разные настройки для вашего запроса (например, мне было бы интересно, если бы указание профиля устройства, поскольку эта функция в настоящее время находится в бета-версии, вероятно, привело бы к немного более медленному ответу) .

person Héctor Neri    schedule 14.09.2018
comment
Привет Нери, спасибо за ваш ответ. Согласно медиане задержки на странице метрик для TTS, задержка составляет всего 200 мс, что намного быстрее, чем то, что я испытываю. Если у вас большой опыт использования C#, не могли бы вы взглянуть на мой обновленный пост с кодом, который я использую? Спасибо - person Harry Stuart; 16.09.2018
comment
Код кажется очень простым. Я вижу, что вы используете Wavenet вместо стандартного типа голоса, но, поскольку показанная средняя задержка низкая, я не думаю, что это может быть проблемой. Могу предложить попробовать напрямую с REST-запросами и с любыми другими клиентскими библиотеками (Java или Python). Если ничего не помогает, может показаться, что проблема связана с задержкой в ​​сети. - person Héctor Neri; 17.09.2018