Чтение текста русским голосом в 1С


В компании есть электронная очередь, работающая на 1С. На монитор в торговом зале выводится в хронологическом порядке список заказов со статусом исполнения. Но клиенты иногда не смотрят на монитор и пропускают свой заказ или идут в кассу, или на склад раньше времени. Чтобы помочь клиентам сориентироваться, было решено озвучивать статусы заказов средствами 1С на русском языке с минимальными вложениями.

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

В Windows уже есть встроенный синтезатор речи SAPI 5, но он говорит только на английском, а русскую версию я сразу не нашел, поэтому устанавливаем от того же Microsoft другую версию синтезатора речи.

Microsoft Speech Platform — набор инструментов, позволяющих разработчикам строить решения с распознаванием голоса и перевода голоса в текст. Текущая версия 11.0 платформы предлагает голоса для 26 языков, включая русский.

Для работы синтезатора речи необходимо загрузить и установить следующие компоненты Microsoft Speech Platform:

  • Microsoft Speech Platform — Runtime – серверная часть платформы, предоставляющая API (набор функций) для программ (файл с именем «SpeechPlatformRuntime.msi» для 32-битных и 64-битных версий Windows).
  • Microsoft Speech Platform — Runtime Languages – набор языков для серверной части. Для каждого языка доступны для скачивания модули для распознавания речи (файлы, чьи имена начинаются с «MSSpeech_SR_») и компьютерные голоса (файлы, чьи имена начинаются с «MSSpeech_TTS_»).


В списке голосов присутствует и русский голос Elena (файл с именем «MSSpeech_TTS_ru-RU_Elena.msi», размер 6 МБ).

Платформа поддерживает Windows XP, Windows Vista, Windows Server 2008 и Windows 7. На остальных не проверял.

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

UPD: 

Нашел для SAPI5 отличный движок, который умеет говорить на русском и английском, с интонацией и женским голосом, а зовут это чудо Милена. Файл движка очень большой, поэтому выложен отдельно. По качеству гораздо лучше, чем предлагаемый выше Elena.

Прямая ссылка на движок Милена: https://dl.dropboxusercontent.com/u/94504750/Russian_Milena.rar

Переработан интерфейс обработки для возможности выбора типа синтезатора и голоса.


Подключение компоненты синтезатора речи осуществляется через COM объект. 

КомпонентаСинтезатораРечи = Новый COMОбъект(«SPEECH.SpVoice»);

КомпонентаСинтезатораРечи.Speak(«Привет, как дела?»);


Дополнение от Kashemir:

Для асинхронного (фонового) выполнения второй параметр нужно установить в 1.

Пример: КомпонентаСинтезатораРечи.Speak(«Привет, как дела?», 1 )

Информация о дополнительных параметрах для SAPI https://msdn.microsoft.com/en-us/library/ms720892%28v=vs.85%29.aspx

20 Comments

  1. Xershi

    Все довольно просто выходит. Буду иметь в виду, если придется решать вопрос по интеграции.

    Reply
  2. uk09

    «В Windows уже есть встроенный синтезатор речи SAPI 5, но он говорит только на английском, а русской версии я не нашел, поэтому устанавливаем от того же Microsoft другую версию синтезатора речи»

    В 2010 году такое делали, пользуясь спичем от Офиса. Голос Звездочета выбрали тогда

    Reply
  3. lustin

    (0) автор — а что за хитрый подход к ссылкам ? почему не прямые ссылки на Microsoft ?

    Reply
  4. ApocalypseNTC

    (5) lustin, Исправлено

    Reply
  5. Sheff

    (1) myr4ik07, мы в хохляндии чтоль?

    Reply
  6. bulpi

    (4)

    Ты хвастаешься тем, что не понимаешь чужой язык ?

    Reply
  7. todelo@yandex.ru

    Забавная вещь, но больше напоминает показательные возможности 1С, чем практическое применение.

    Reply
  8. GreenEye

    (5) lustin, Вроде на MS там ссылки

    Reply
  9. nikivr

    Добрый день!

    Пожалуйста подскажите начинающему программисту, каким образом из 1С происходит обращение и вызов этого «волшебного» синтезатора речи ?

    Спасибо.

    Reply
  10. ApocalypseNTC

    (11) nikivr, Подключение компоненты синтезатора речи осуществляется через COM объект.

    КомпонентаСинтезатораРечи = Новый COMОбъект(«SPEECH.SpVoice»);

    КомпонентаСинтезатораРечи.Speak(«Привет, как дела?»);

    Reply
  11. Kashemir

    Хорошая штука !

    p.s. Пробовал обработкой с обычными формами под SAPI5. Сперва пришлось тип реквизита «Голос» («любаяссылка») табличной части «СписокГолосов» на строку неопределенной длины поменять.

    fyi Для асинхронного (фонового) выполнения второй параметр нужно установить в 1 ( https://msdn.microsoft.com/en-us/library/ms720892%28v=vs.85%29.aspx ) . Пример КомпонентаСинтезатораРечи.Speak(«Привет, как дела?», 1 )

    Reply
  12. ApocalypseNTC

    (13) Kashemir, Учел предложения и внес в публикацию. Спасибо.

    Reply
  13. V0fka

    Автор, вы бы не могли выложить несколько строк примера кода (или обработку куда-то в бесплатное место положить) как использовать движок Milena?

    Reply
  14. TreeDogNight

    В тонком и веб-клиенте платформы 8.3.8 будет работать?

    Reply
  15. talych

    (15)

    &НаКлиенте
    Процедура Озвучить(Команда)
    объектСП = Новый COMОбъект(«SAPI.SpVoice»);
    объектСП.Rate = 1;
    объектСП.Volume = 90;
    объектСП.Speak(«Здравствуй мир!»);
    КонецПроцедуры
    

    Показать

    Reply
  16. pvlunegov

    Хорошая вещь, все установилось и стало работать с полтычка, спасибо автору!

    Голос Милены гораздо приятнее чем Микрософтовской барышни.

    Reply
  17. biformatus

    Ссылка на движок Милена умерла

    Reply
  18. Vodoley

    ,,, разобрался )

    Reply
  19. rpgshnik

    (14) асинхронный вызов не получается. Он точно работает из 1С? Windows 10.

    Reply
  20. u_n_k_n_o_w_n

    Добрый день!

    Оригинальное решение! Встроил в свою конфигурацию.

    Теперь после выполнения фонового задания, тетка сообщает об этом.

    Ранее приходилось постоянно переключаться и смотреть результаты, что постоянно отвлекало.

    Однозначно +.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *