YandexSpeechApi
Описание
Wrapper для синтезатора речи, основанного на технологиях Yandex SpeechKit Cloud API. Предоставляет собой интерфейс для перевода машинного текста (на русском, английском, украинском или турецком язык) в речь. Может использоваться как для прямого воспроизведения текста, так и для записи речи в файл.
Установка
- Перед использованием необходимо получить ключ разработчика. Подробнее на официальном сайте: https://tech.yandex.ru/speechkit/cloud
- Добавьте yandex_speech_api в Gemfile.
- bundle install
- Добавьте в проект:
# ...
require 'yandex_speech'
# ...
Воспроизведение звука поддерживается для UNIX-подобных операционных систем (Mac + Linux).
Примеры использования
Пример 1
Для начала работы с api достаточно указать ключ:
key = File.open('secret key/key').readline.strip
speaker = YandexSpeechApi::Speaker.init key: key, language: 'russian'
speaker.save_to_file "Не будите спящего кота."
Пример 2
Когда это неоходимо, конструктор позволяет переписывать параметры по умолчанию, например, так можно выбрать язык:
YandexSpeechApi::Key.global_key = File.open('secret key/key').readline.strip
= "Don't trouble trouble until trouble troubles you"
speaker = YandexSpeechApi::Speaker.init(voice: :zahar, speed: 0.23)
speaker.say
Обратите внимание, передавать key каждый раз нет никакой необходимости. Достаточно один раз установить YandexSpeechApi::Key.global_key.
Пример 3
Также поддерживаются геттеры и сеттеры:
key = File.open('secret key/key').readline.strip
= "Як поїдеш в об'їзд, то будеш і на обід, а як навпростець, то увечері."
speaker = YandexSpeechApi::Speaker.init
speaker.key = key
speaker.voice = 'Alyss'
speaker.language = 'Ukrain'
speaker.speed = 1.2
speaker.emotion = 'good'
speaker.save_to_file , '~/downloads/sound'
Пример 4
И, наконец, установка параметров через блок:
key = File.open('secret key/key').readline.strip
= "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
Примечания
- За один запрос озвучивается текст, длинной до 2000 знаков.
- Выбирая язык, учтите: вы ограничены его фонетикой, так, например, английский переводчик не умеет озвучивать русские тексты и т.п. (На самом деле это не совсем точно — хотя официальная документация и не рекомендует выставлять некорректные пары язык-текст, в то же время, русский переводчик фактически может воспроизводить английские тексты)
Зависимости
- Ruby 2.0.0 или выше
Linux-специфичные зависимости:
- mpg123
Лицензия
Данный код распространяется под лицензией MIT, подробнее смотрите LICENSE. Остальные права принадлежат их владельцам.