Вступление
В предыдущем уроке мы показали вам, как Принимать телефонный звонок с помощью Java и отвечать с помощью Преобразование текста в речь . В дополнение к приему телефонного звонка вы также можете совершать исходящие телефонные звонки.
В этом руководстве вы создадите приложение, которое может совершать исходящие телефонные звонки с преобразованием текста в речь, используя Java и Nexmo Voice API .
Предпосылки
Для работы с этим руководством вам понадобится учетная запись Nexmo . Зарегистрируйтесь сейчас, если у вас еще нет учетной записи.
Вы будете использовать Gradle для управления вашими зависимостями и запуска вашего приложения. Кроме того, вам нужно будет убедиться, что у вас установлена копия JDK. В этом руководстве я буду использовать JDK 11, который является текущим LTS.
Наконец, вам понадобится установленный Nexmo CLI . Вы будете использовать его, чтобы приобрести номер телефона и настроить свою учетную запись Nexmo так, чтобы она указывала на ваше новое приложение.
Сделайте телефонный звонок с преобразованием текста в речь с помощью Java
В этом руководстве вы пройдете через следующие шаги:
- Использование интерфейса Nexmo CLI для покупки номера телефона и создания приложения.
- Использование Gradle для инициализации нового Java-приложения.
- Использование клиентской библиотеки 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”