gifts2017

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

Опубликовал Андрей Чунихин (ApocalypseNTC) в раздел Программирование - Инструментарий

В компании есть электронная очередь, работающая на 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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Архив с обработкой и всеми необходимыми компонентами
.zip 27,46Mb
10.06.16
57
.zip 1 27,46Mb 57 Скачать
Голосовой движок Милена для SAPI5 (женский голос с отличной интонацией на русском и английском)
.rar 118,16Mb
08.06.16
11
.rar 118,16Mb 11 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ярослав Володимирович (myr4ik07) 01.06.16 15:21
Цікаво, на майбутнє в закладки поклав, дякую. Хоча би не забути про закладку, якщо наступить такий момент :)
Kashemir; Stim213; cool.vlad4; bulpi; +4 2 Ответить 2
2. Xer shi (Xershi) 01.06.16 15:24
Все довольно просто выходит. Буду иметь в виду, если придется решать вопрос по интеграции.
3. Рашида Равильевна Калеева (uk09) 01.06.16 15:26
"В Windows уже есть встроенный синтезатор речи SAPI 5, но он говорит только на английском, а русской версии я не нашел, поэтому устанавливаем от того же Microsoft другую версию синтезатора речи"

В 2010 году такое делали, пользуясь спичем от Офиса. Голос Звездочета выбрали тогда
4. Максим Кузнецов (Makushimo) 02.06.16 06:08
(1) myr4ik07, renmen anpil, ou kominike nan yon lang enkonpreyansib yo ban nou
sats2003; Drak0n; nickpugachev; 1vasia1; +4 3 Ответить 1
5. Алексей Лустин (lustin) 02.06.16 08:48
(0) автор - а что за хитрый подход к ссылкам ? почему не прямые ссылки на Microsoft ?
ApocalypseNTC; 1vasia1; +2 Ответить 2
6. Андрей Чунихин (ApocalypseNTC) 03.06.16 06:47
7. Руслан Хитров (Sheff) 03.06.16 13:26
(1) myr4ik07, мы в хохляндии чтоль?
sats2003; jONES1979; miller-adm; +3 4 Ответить
8. bulpi bulpi (bulpi) 03.06.16 14:24
(4)
Ты хвастаешься тем, что не понимаешь чужой язык ?
dj_serega; Рамзес; +2 1 Ответить
9. Глеб Цубин (todelo@yandex.ru) 06.06.16 10:36
Забавная вещь, но больше напоминает показательные возможности 1С, чем практическое применение.
10. Сергей (GreenEye) 08.06.16 11:03
(5) lustin, Вроде на MS там ссылки
11. Никита Бунин (nikivr) 08.06.16 12:08
Добрый день!

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

Спасибо.
12. Андрей Чунихин (ApocalypseNTC) 08.06.16 14:47
(11) nikivr, Подключение компоненты синтезатора речи осуществляется через COM объект.
КомпонентаСинтезатораРечи = Новый COMОбъект("SPEECH.SpVoice");
КомпонентаСинтезатораРечи.Speak("Привет, как дела?");
13. Игорь Макаренко (Kashemir) 09.06.16 10:33
Хорошая штука !
p.s. Пробовал обработкой с обычными формами под SAPI5. Сперва пришлось тип реквизита "Голос" ("любаяссылка") табличной части "СписокГолосов" на строку неопределенной длины поменять.

fyi Для асинхронного (фонового) выполнения второй параметр нужно установить в 1 ( https://msdn.microsoft.com/en-us/library/ms720892%28v=vs.85%29.aspx ) . Пример КомпонентаСинтезатораРечи.Speak("Привет, как дела?", 1 )
ApocalypseNTC; +1 Ответить 1
14. Андрей Чунихин (ApocalypseNTC) 10.06.16 07:06
(13) Kashemir, Учел предложения и внес в публикацию. Спасибо.
Kashemir; +1 Ответить
15. Владимир (V0fka) 09.08.16 11:23
Автор, вы бы не могли выложить несколько строк примера кода (или обработку куда-то в бесплатное место положить) как использовать движок Milena?
16. Илья Вильчик (TreeDogNight) 25.09.16 13:03
В тонком и веб-клиенте платформы 8.3.8 будет работать?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа