Рубрики
Без рубрики

Сделайте телефонный звонок с преобразованием текста в речь с помощью Java

Вступление В предыдущем уроке мы показали вам, как принимать телефонные звонки с помощью Java a… С тегами java, nexmo, texttospeech, телефон.

Вступление

В предыдущем уроке мы показали вам, как Принимать телефонный звонок с помощью Java и отвечать с помощью Преобразование текста в речь . В дополнение к приему телефонного звонка вы также можете совершать исходящие телефонные звонки.

В этом руководстве вы создадите приложение, которое может совершать исходящие телефонные звонки с преобразованием текста в речь, используя Java и Nexmo Voice API .

Предпосылки

Для работы с этим руководством вам понадобится учетная запись Nexmo . Зарегистрируйтесь сейчас, если у вас еще нет учетной записи.

Вы будете использовать Gradle для управления вашими зависимостями и запуска вашего приложения. Кроме того, вам нужно будет убедиться, что у вас установлена копия JDK. В этом руководстве я буду использовать JDK 11, который является текущим LTS.

Наконец, вам понадобится установленный Nexmo CLI . Вы будете использовать его, чтобы приобрести номер телефона и настроить свою учетную запись Nexmo так, чтобы она указывала на ваше новое приложение.

Сделайте телефонный звонок с преобразованием текста в речь с помощью Java

В этом руководстве вы пройдете через следующие шаги:

  1. Использование интерфейса Nexmo CLI для покупки номера телефона и создания приложения.
  2. Использование Gradle для инициализации нового Java-приложения.
  3. Использование клиентской библиотеки Nexmo Java для инициирования телефонного звонка и выполнения преобразования текста в речь.

Покупка номера

Вам понадобится номер Nexmo для отправки телефонных звонков. Если у вас нет номера, вы можете использовать КЛИЕНТ Nexmo для его покупки:

nexmo number:buy --country_code US

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

Настройте Свою Учетную Запись Nexmo

Если у вас нет приложения, вы можете использовать КЛИЕНТ Nexmo для его создания. Вам нужно будет определить имя приложения, а также URL-адрес ответа и события, которые Voice API будет использовать по умолчанию:

  • Nexmo Voice API отправит запрос на ваш URL-адрес ответа, когда на номер телефона, связанный с вашим приложением, поступит телефонный звонок.
  • Голосовой API Nexmo будет отправлять запросы на ваш URL-адрес события при различных изменениях статуса.

Чтобы узнать больше о приложениях, ознакомьтесь с нашим Nexmo Concepts Guide .

Используйте следующую команду для создания приложения с использованием интерфейса Nexmo CLI:

nexmo app:create "Send TTS Call" http://example.com/webhooks/answer http://example.com/webhooks/events --keyfile private.key

Эта команда также создаст файл с именем private.key , который вам потребуется для аутентификации с помощью Nexmo Voice API для совершения вызовов. Этот файл будет сохранен в каталоге, внутри которого вы запускаете команду. Также запишите возвращаемый идентификатор приложения, так как он вам понадобится позже.

Использование Gradle для настройки нового Java-проекта

Вы будете использовать Gradle для управления вашими зависимостями, а также для создания и запуска вашего Java-приложения.

Команда gradle init-application создаст все нужные вам папки, а также пример класса, в котором вы будете писать свой код.

Из командной строки создайте новый Java-проект с помощью следующей команды и примите значения по умолчанию в интерактивных подсказках:

mkdir make-tts-call
cd make-tts-call
gradle init --type java-application

Gradle создаст класс App в папке src/main/java/make/tts/call . Внутри этого класса находится приВетствую и основной метод. Вам не понадобится getGreeting метод, так что не стесняйтесь удалять его.

Ваш App класс должен выглядеть следующим образом:

/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package make.tts.call;

public class App {
    public static void main(String[] args) {
        // Future Code Goes Here
    }
}

Добавьте зависимости

Вы будете использовать Java-библиотеку Nexmo для связи с Nexmo Voice API. Добавьте следующее в блок dependencies в вашем файле build.gradle :

// Nexmo Java Client
implementation 'com.nexmo:client:4.2.0'

Инициализируйте клиент Nexmo

Java-библиотека Nexmo содержит класс NexmoClient , который предоставляет вам доступ к различным API Nexmo. Вы будете использовать свой идентификатор приложения и путь к вашему файлу private.key , указанный на предыдущем шаге. NexmoClient будет использовать эту информацию для аутентификации в Nexmo Voice API.

Добавьте следующее в метод main класса App , разрешив любой импорт:

NexmoClient nexmoClient = NexmoClient.builder()
        .applicationId(APPLICATION_ID)
        .privateKeyPath(PRIVATE_KEY_PATH)
        .build();

VoiceClient voiceClient = nexmoClient.getVoiceClient();

NexmoClient выдает Исключение , если файл закрытого ключа не может быть загружен. Для удобства измените сигнатуру вашего метода main , чтобы генерировать любые исключения. Ваш метод main теперь должен выглядеть следующим образом:

public static void main(String[] args) throws Exception {
    NexmoClient nexmoClient = NexmoClient.builder()`
            .applicationId(APPLICATION_ID)
            .privateKeyPath(PRIVATE_KEY_PATH)
            .build();

    VoiceClient voiceClient = nexmoClient.getVoiceClient();
}

Создайте объект управления вызовом Nexmo

Голосовой API Nexmo управляется с помощью Объекта управления вызовами Nexmo (CCO) . NCCP – это массив JSON, который содержит набор действий, которые будет выполнять Voice API.

Следующий NCCO проинструктирует Nexmo Voice API разговаривать с получателем, когда он отвечает на вызов:

[
    {
        "action": "talk",
        "text": "This is a text-to-speech call from Nexmo"
    }
]

Клиентская библиотека Nexmo Java предоставляет классы, которые позволяют создавать NCCO. Вы будете использовать Ncco и Обсуждение действий классы для создания NCCO.

Добавьте следующее в метод main , разрешив любой импорт:

TalkAction intro = TalkAction.builder("This is a text-to-speech call from Nexmo").build();
Ncco ncco = new Ncco(intro);

Сделай телефонный звонок

Voice Client содержит метод с именем create Call , который ожидает com.nexmo.client.voice. Вызов . Объект Call используется для определения номера, с которого вы звоните, получателя, которому вы хотите позвонить, и NCCP для управления вызовом.

Создайте новый объект Call в методе main и вызовите метод createCall с созданным объектом, разрешив любой импорт:

Call call = new Call(TO_NUMBER, NEXMO_NUMBER, ncco);
voiceClient.createCall(call);

Протестируйте Свое Приложение

Запустите свое приложение с помощью команды gradle run внутри вашего каталога make-tts-call . Вам должен поступить телефонный звонок с вашего номера Nexmo.

Как только вы ответите на этот вызов, Nexmo Voice API выдаст сообщение: “Это вызов с преобразованием текста в речь от Nexmo”.

Вывод

В нескольких строках кода вы создали приложение, которое может позвонить получателю и передать сообщение.

Ознакомьтесь с нашей документацией по Nexmo Developer , где вы можете узнать больше о потоке вызовов или Объекты управления вызовом Nexmo . Смотрите наши Фрагменты кода Nexmo для Java для получения полных примеров кода в этом руководстве и многое другое.

Сообщение Сделать телефонный звонок с преобразованием текста в речь с помощью Java появилось первым на Nexmo .

Оригинал: “https://dev.to/vonagedev/make-text-to-speech-phone-call-with-java-aom”