YandexSpeechApi

Gem Version Build Status Code Climate Inline docs

Описание

Wrapper для синтезатора речи, основанного на технологиях Yandex SpeechKit Cloud API. Предоставляет собой интерфейс для перевода машинного текста (на русском, английском, украинском или турецком язык) в речь. Может использоваться как для прямого воспроизведения текста, так и для записи речи в файл.

Установка

  1. Перед использованием необходимо получить ключ разработчика. Подробнее на официальном сайте: https://tech.yandex.ru/speechkit/cloud
  2. Добавьте yandex_speech_api в Gemfile.
  3. bundle install & bundle update
  4. Добавьте в проект:
  # ...
  require 'yandex_speech'  
  # ... 

Воспроизведение звука поддерживается для UNIX-подобных операционных систем (Mac + Linux).

Примеры использования

Пример 1

Для начала работы с api достаточно указать ключ:


require 'yandex_speech'

key = File.open('secret key/key').readline.strip

speaker = YandexSpeechApi::Speaker.init key: key
speaker.save_to_file "Не будите спящего кота."

Пример 2

Когда это неоходимо, конструктор позволяет переписывать параметры по умолчанию, например, так можно выбрать язык:


require 'yandex_speech'

YandexSpeechApi::Key.global_key = File.open('secret key/key').readline.strip

message = "Don't trouble trouble until trouble troubles you"
speaker = YandexSpeechApi::Speaker.init(language: 'english', voice: :zahar, speed: 0.23)
speaker.say message

Обратите внимание, передавать key каждый раз нет никакой необходимости. Достаточно один раз установить YandexSpeechApi::Key.global_key.

Пример 3

Также поддерживаются геттеры и сеттеры:

require 'yandex_speech'

key = File.open('secret key/key').readline.strip

message = "Як поїдеш в об'їзд, то будеш і на обід, а як навпростець, то увечері."

speaker = YandexSpeechApi::Speaker.init
speaker.key      = key
speaker.voice    = 'Alyss'
speaker.language = 'Ukrain'
speaker.speed    = 1.2
speaker.emotion  = 'good'
speaker.save_to_file message, '~/downloads/sound'

Пример 4

И, наконец, установка параметров через блок:


require 'yandex_speech'

key = File.open('secret key/key').readline.strip
message = "one two three. one two three. one two three four."

speaker = YandexSpeechApi::Speaker.init do |s|
  s.key      = key
  s.voice    = :jane
  s.language = :english
  s.speed    = :slow
  s.emotion  = :good
end

speaker.say message

Примечания

  1. За один запрос озвучивается текст, длинной до 2000 знаков.
  2. Выбирая язык, учтите: вы ограничены его фонетикой, так, например, английский переводчик не умеет озвучивать русские тексты и т.п. (На самом деле это не совсем точно — хотя официальная документация и не рекомендует выставлять некорректные пары язык-текст, в то же время, русский переводчик фактически может воспроизводить английские тексты)

Зависимости

  • Ruby 2.0.0 или выше

  • rest-client '>= 2.0.0'

  • addressable '>= 2.4.0'

Linux-специфичные зависимости:

  • mpg123

Лицензия

Данный код распространяется под лицензией MIT, подробнее смотрите LICENSE. Остальные права принадлежат их владельцам.