Arhn - архитектура программирования

Обработка нескольких запросов с помощью службы преобразования текста в речь IBM Watson

Я работаю с ibm watson tts API, но дело в том, что когда я синтезирую несколько предложений (одно за другим), между выводами возникает небольшая задержка, но я хотел бы, чтобы она была непрерывной (как если бы отдельные предложения произносились в одном высказывании). ). Есть какой-либо способ сделать это? Или есть какие-то другие решения tts, которые могут помочь мне в этом?

Это метод, который синтезирует различные высказывания с помощью API:

public void sayUtterances() {
    String[] splitUtterance = {"this is", "the sentence I would",
                               "like to say in one utterance", "without pausing"};

    for(int i = 0; i < splitUtterance.length; i++) {
        textToSpeechService.synthesize(splitUtterance[i], Voice.EN_ALLISON);
    }
}

Ответы:


1

Вызовите службу параллельно и асинхронно. Вам не нужно ждать ответа на 1-е предложение, прежде чем вызывать службу для 2-го предложения.

29.08.2017
  • Я пробовал это, но когда я выполняю их асинхронно с помощью Stream Player, я все равно получаю паузу между высказываниями, и когда я выполняю одно высказывание и выполняю другое, синхронизированное с другим объектом, два высказывания произносятся одновременно, а не один за другим. 30.08.2017
  • Я не говорю воспроизводить их асинхронно, я говорю синтезировать аудиофайлы асинхронно и параллельно, но воспроизводить их последовательно... т.е. если есть пять предложений, попросите, чтобы все 5 были синтезированы параллельно. Подождите, пока вернется 1-й, и сыграйте его, когда он закончится, дождитесь возвращения 2-го (если он еще не вернулся) и сыграйте его, .... 30.08.2017
  • Хорошо, мне жаль, что я смог сделать то, что вы сказали, и я могу синтезировать поступающие высказывания во время их воспроизведения. Однако между высказываниями все еще есть небольшая задержка, есть ли способ еще немного сократить эту задержку? 31.08.2017
  • Насколько большая задержка? Одним из способов может быть запуск асинхронного синтеза в обратном порядке. т.е. запрашивать 5-й, потом 4-й и т.д., пусть все равно все параллельно, но проигрывать их в правильной последовательности. 31.08.2017
  • Это все еще около секунды задержки. И как я смогу синтезировать последнее, но воспроизвести первое? Что я сделал, так это создал очередь блокировки для синтезированных высказываний и добавил их в нее по мере их синтеза и воспроизвел то, что было добавлено в список. Может быть, я неправильно подошел к этому, и это является причиной моей задержки. 31.08.2017
  • Это должно быть нормально, задержка в одну секунду может быть связана с переключением медиаплеера с одного аудиофайла на другой. Не уверен, как вы могли бы ускорить это. 31.08.2017
  • Хорошо, спасибо большое, я очень ценю это! Не могли бы вы помочь мне с моим другим вопросом, связанным с распознаванием речи? Если не возражаешь я бы хотел спросить? 31.08.2017

  • 2

    TTS генерирует небольшую паузу (~ 400 мс) в начале и в конце каждого синтеза. Так что, если вы играете один за другим, вы все равно получаете эти паузы между ними. Вы должны удалить их вручную, сбрасывая сэмплы с нулевой величиной.

    Также сервис имеет довольно большой лимит ввода, поэтому вы можете просто генерировать сразу несколько фраз, вызвав сервис с «это предложение, которое я хотел бы сказать одним высказыванием без пауз». Служба является потоковой службой, поэтому она начнет воспроизводить звук как можно скорее, и вы сможете передавать их непосредственно на аудиоустройство, не получая полного ответа.

    07.11.2017
  • Здравствуйте, спасибо за это. Как именно мне подойти к ручному сбросу образцов с нулевой величиной? А также, причина, по которой я разделил результаты, заключается в том, что я хотел бы иметь возможность добавлять к предложению, пока система синтезирует и говорит одновременно, таким образом, я могу создать впечатление, что это все одно высказывание. 08.11.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..