Синтез речи на базе Yandex SpeechKit Cloud — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 56: Строка 56:
 
Компонент "'''Старт'''". Получает переданный текст для озвучки и записывает его в переменную '''text'''.
 
Компонент "'''Старт'''". Получает переданный текст для озвучки и записывает его в переменную '''text'''.
 
*Параметр запуска - переменная '''text''' (строковая)
 
*Параметр запуска - переменная '''text''' (строковая)
 +
  
 
Компонент "'''SpeechKit Key'''". Определяет API-ключ для выполнения Web-запроса на сервисы Yandex.  
 
Компонент "'''SpeechKit Key'''". Определяет API-ключ для выполнения Web-запроса на сервисы Yandex.  
 
*переменной '''key''' (строковая) присваивается значение API-ключа.  
 
*переменной '''key''' (строковая) присваивается значение API-ключа.  
 +
  
 
Компонент "'''Web запрос'''". Выполняет GET-запрос на сервис Yandex SpeechKit Cloud и получает бинарные данные звукового файла.  
 
Компонент "'''Web запрос'''". Выполняет GET-запрос на сервис Yandex SpeechKit Cloud и получает бинарные данные звукового файла.  
Строка 70: Строка 72:
 
*Ответ в переменную - переменная '''response''' (строковая)
 
*Ответ в переменную - переменная '''response''' (строковая)
 
*Кодировка ответа - Текущая кодовая страница Windows
 
*Кодировка ответа - Текущая кодовая страница Windows
 +
  
 
Компонент "'''Запись'''". Используется для генерации имени файла.
 
Компонент "'''Запись'''". Используется для генерации имени файла.
Строка 76: Строка 79:
 
*Начинать новую папку - Никогда
 
*Начинать новую папку - Никогда
 
*Сохранить путь в переменную - Абсолютный путь
 
*Сохранить путь в переменную - Абсолютный путь
*Путь в переменную - переменная filename (строковая)
+
*Путь в переменную - переменная '''filename''' (строковая)
 
*Макс время, с - 1
 
*Макс время, с - 1
  
Компонент "'''Удаляем файл (если есть)'''".
 
  
Компонент "'''wav->mp3'''".
+
Компонент "'''Удаляем файл (если есть)'''". Компонент удаляет запись от предыдущего компонента, так как его целью была генерация названия файла. Сам временный файл записи фактически не нужен, поэтому и происходит его удаление.
 +
*Путь - переменная '''filename'''
 +
*Тип объекта - Файл
 +
*Операция - Удалить
 +
 
 +
 
 +
Компонент "'''wav->mp3'''". Меняет название файла путем подмены расширения на mp3. У названия файла удаляются последние три символа (это может быть wav или mp3, информацию мы изначально не знаем), а затем добавляет расширение mp3. Таким образом, название будет гарантированно иметь расширение mp3.
 +
* переменной '''filename''' присваивается выражение
 +
remove([filename],len([filename])-3,3)+'mp3'
 +
 
 +
 
 +
Компонент "'''Сохраняем данные в файл'''". Записывает все полученные данные от сервиса Yandex SpeechKit Сloud в файл со сгенерированным названием.
 +
*Путь - переменная '''filename'''
 +
*Тип объекта - Файл
 +
*Операция - Дописать данные в конец
 +
*Данные - переменная '''response'''
 +
*Кодировка - Текущая кодовая страница Windows
 +
 
 +
 
 +
Компонент "'''Воспроизводим файл'''". Воспроизводит звуковой файл в линию абонента.
 +
*Режим - Файл полностью
 +
*Файл - переменная '''filename'''
  
Компонент "'''Сохраняем данные в файл'''".
 
  
Компонент "'''Воспроизводим файл'''".
+
Компонент "'''Файловая операция'''". Удаляет полученную запись после воспроизведения для экономии места на диске. Предполагается, что файл с озвученным текстом далее не понадобится.
 +
*Путь - переменная '''filename'''
 +
*Тип объекта - Файл
 +
*Операция - Удалить
  
Компонент "'''Файловая операция'''".
 
  
Компонент "'''Стоп'''".
+
Компонент "'''Стоп'''". Для возврата в родительский сценарий (из которого запустился сценарий синтеза речи) необходимо указать возврат управления.
 +
*Возврат управления - Да.

Версия 11:29, 16 декабря 2014

Наверх

Введение

Yandex SpeechKit Cloud — это облачный сервис, открывающий разработчикам доступ к речевым технологиям Яндекса. В этой статье мы поговорим про синтез речи.

Технология синтеза речи позволяет переводить текст в речь (звуковой файл). Задача актуальна для озвучивания динамически обновляемой информации или быстро меняющихся данных, таких как остаток товаров на складе, репертуар кинотеатров и так далее. Технология синтеза речи Яндекса построена на базе скрытых марковских моделей (HMM). За счет применения статистического подхода в акустическом моделировании удается достичь естественных плавных интонаций. Технология позволяет достаточно быстро создавать новые голоса и синтезировать различные эмоции.

Синтез речи Яндекса позволяет выбрать:

  • мужской или женский голос для озвучивания;
  • эмоции: добрый, злой, нейтральный голос.

Документация по API синтеза речи Yandex SpeechKit доступна на сайте https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/speechkit-dg-tts-docpage/


Быстрый старт

Для использования системы синтеза речи Yandex SpeechKit Cloud выполните следующие действия:

Шаг 1. Скачайте и импортируйте следующий сценарий. Сценарий позволяет преобразовывать текст в звуковой файл, и воспроизводить его абоненту.

Скачать сценарий: Синтез речи Yandex SpeechKit Cloud.oscr (собран на версии 2.11.141204)

После импорта сценария сохраните его.


Шаг 2. Получите API-ключ на использование сервиса в кабинете разработчика.

После регистрации ключа присвойте его переменной key (строковая) в компоненте SpeechKit Key установленного сценария.


Синтез речи Yandex SpeechKit Cloud 001.png


Шаг 3. Для использования сервиса используйте компонент "Запуск сценария" в IVR сценарии. В свойствах компонента выберите

  • Тип запуска - Вложенный
  • Сценарий - выберите сценарий "Синтез речи Yandex SpeechKit Cloud"
  • Параметр запуска - введите ваш текст для воспроизведения. В примере, строка "Здравствуйте! Вас приветствует компания Телефонные Системы!"
  • Возврат управления - Да


Синтез речи Yandex SpeechKit Cloud 002.png


Описание сценария

Сценарий синтеза речи Yandex SpeechKit Cloud выглядит следующим образом:


Синтез речи Yandex SpeechKit Cloud 003.png


Компонент "Старт". Получает переданный текст для озвучки и записывает его в переменную text.

  • Параметр запуска - переменная text (строковая)


Компонент "SpeechKit Key". Определяет API-ключ для выполнения Web-запроса на сервисы Yandex.

  • переменной key (строковая) присваивается значение API-ключа.


Компонент "Web запрос". Выполняет GET-запрос на сервис Yandex SpeechKit Cloud и получает бинарные данные звукового файла.

  • URL - выражение:
'https://tts.voicetech.yandex.net/generate?text='+[text]+'&format=mp3&lang=ru-RU&speaker=zahar&key='+[key]
  • Метод - GET
  • Режим работы - Обрыв по таймауту
  • Таймаут, сек - 30

ВНИМАНИЕ: Данный режим работы накладывает ограничение на время скачивания звукового файла. Если вы хотите озвучить большой текст, то рекомендуется увеличить время таймаута. Как вариант, установите режим работы - Ожидание результата, но в этом случае время время работы компонента может быть неограниченным, что приведет к тому, что абонент устанет ждать и положит трубку.

  • Тип ответа - Текст
  • Ответ в переменную - переменная response (строковая)
  • Кодировка ответа - Текущая кодовая страница Windows


Компонент "Запись". Используется для генерации имени файла.

  • Сохранение файла - Сгенерировать автоматически
  • Каталог - CustomCategory\Local\Синтез речи YandexSpeechKit Cloud\DefaultCategory
  • Начинать новую папку - Никогда
  • Сохранить путь в переменную - Абсолютный путь
  • Путь в переменную - переменная filename (строковая)
  • Макс время, с - 1


Компонент "Удаляем файл (если есть)". Компонент удаляет запись от предыдущего компонента, так как его целью была генерация названия файла. Сам временный файл записи фактически не нужен, поэтому и происходит его удаление.

  • Путь - переменная filename
  • Тип объекта - Файл
  • Операция - Удалить


Компонент "wav->mp3". Меняет название файла путем подмены расширения на mp3. У названия файла удаляются последние три символа (это может быть wav или mp3, информацию мы изначально не знаем), а затем добавляет расширение mp3. Таким образом, название будет гарантированно иметь расширение mp3.

  • переменной filename присваивается выражение
remove([filename],len([filename])-3,3)+'mp3'


Компонент "Сохраняем данные в файл". Записывает все полученные данные от сервиса Yandex SpeechKit Сloud в файл со сгенерированным названием.

  • Путь - переменная filename
  • Тип объекта - Файл
  • Операция - Дописать данные в конец
  • Данные - переменная response
  • Кодировка - Текущая кодовая страница Windows


Компонент "Воспроизводим файл". Воспроизводит звуковой файл в линию абонента.

  • Режим - Файл полностью
  • Файл - переменная filename


Компонент "Файловая операция". Удаляет полученную запись после воспроизведения для экономии места на диске. Предполагается, что файл с озвученным текстом далее не понадобится.

  • Путь - переменная filename
  • Тип объекта - Файл
  • Операция - Удалить


Компонент "Стоп". Для возврата в родительский сценарий (из которого запустился сценарий синтеза речи) необходимо указать возврат управления.

  • Возврат управления - Да.