Птыца Говорун отличается умом…

04.05.07

Разработка - Универсальные функции

Использование  компонент речевых технологий MS Speech (SAPI 4 и SAPI 5) в 1С.
Вначале было слово. Затем слово научились записывать и воспроизводить, копировать и оцифровывать, и ,наконец, синтезировать. Технология воспроизведения речи «text-to-speech» («текст в речь», чтение синтезированным голосом) реализована на различных платформах. [i] Никто не собирается Кубу открывать и все же : [/i] Голосовых движков (синтезаторов речи) и программ для воспроизведения текста разработано множество: Подробнее см., например, здесь: http://www.sovserver.ru/dc/program/16174/2007/01/30/golosovie_dviszki/ Существует речевой движок и от Microsoft, который многие программисты использует в своих разработках. Голос у него может показаться глухим и невнятным, но все же почему бы Вам не применять его в разработках ?!... Direct Speech Synthesis - это один из компонентов, входящих в состав MS SAPI 4 [5]. Этот компонент предназначен для непосредственного синтеза речи по тексту и позволяет не только озвучивать текст, но и управлять параметрами синтеза речи. Данный продукт можно использовать в любом языке, который поддерживает OLE автоматизацию (в 1С). Если Вы используете MS Windows 2000,Vista, то компоненты SAPI входят в состав ОС и, скорее всего, уже установлены на ПК, поэтому делать ничего не надо. Для ОС MS Windows 9x и XP Вам придется загрузить пользовательский дистрибутив SAPI 4 [5]: Файлы поддержки русского языка (мужской и женский голоса), (2,9 Мб)., http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe Файлы поддержки английского языка (мужской и женский голоса), (2,6 Мб), http://activex.microsoft.com/activex/controls/agent2/lhttseng.exe Также для ОС Windows 9X необходима служба использования голосов, (850 Кб), http://activex.microsoft.com/activex/controls/sapi/spchapi.exe Документация по SDK содержится в файле sapi.chm, который можно найти в директории \Program Files\Microsoft Speech SDK \Docs\Help SAPI 4 [5] SDK (68 Мб). или здесь http://www.microsoft.com/speech/SDK/51/sapi.chm [i] Поищите эти файлы на дисках, чтобы напрасно не качать из Интернета. Часто голосовые движки помещают на диски для программистов. Компоненты SDK также Вам могут пригодятся для прослушивания текста книг, документов и пр. [/i] Для тестов можно использовать простенькие программы преобразования текста в аудио: Govorilka CP (47 Кб). RUSSpeaker2.1 (208Кб) http://www.vector-ski.ru/vecs/govorilka/govorilka_cp.htm http://russpeaker.narod.ru/setup.zip В модулях 1С используем процедуры синтеза речи:

 

Перем Голос,Звук,УстSAPI;

Процедура ИнитSAPI()
Попытка    
Голос=СоздатьОбъект(\"ActiveVoice.ActiveVoice.1\"); //при необходимости
УстSAPI=Голос.CountEngines; //кол-во установленных голосовых движков
//Для Сч=1 По УстSAPI Цикл
//Сообщить(\"Имя синтезатора:\"+Голос.ProductName(Сч)+\" \"+Голос.Speaker(Сч));
//КонецЦикла;
Звук=СоздатьОбъект(\"Sapi.SpVoice\");
Исключение
УстSAPI=0;
Предупреждение(\"Не установлены компоненты SpeechAPI!\",3);    
КонецПопытки;    
КонецПроцедуры

Процедура Сказать(Фраза,Зн=0) // Так рождается звук.
Если УстSAPI>0 Тогда
 Звук.Speak(Фраза,Зн);
КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
ИнитSAPI();
Сообщить(\"Текущий голос:\"+Голос.Speaker(Голос.CurrentMode));
Текст=\"Hello, world !\";
// Пример 1. Воспроизведение текста голосом
Сказать(Текст);
//Голос.Speak(Текст);//можно и так!
// Пример 2. Воспроизведение текста голосом с использованием XML тэгов
Сказать(  
//\"<spell>\"+
\"<rate speed=\"+Симв(34)+\"-15\" +Симв(34)+\">\"+//Скорость  чтения
\"<volume level=\"+Симв(34)+\"95\"+Симв(34)+\">\"+//Громкость чтения
\"</voice>\"+
Текст,8);           
// Пример 3. Воспроизведение музыки или аудиозаписи из WAV файла
Сказать(\"D:\Music\Hello.WAV\",12);
// Пример 4. Недокументированная возможность
// Проигрывает WAV файл из Интернета (если установлено соединение)
Сказать(\"http://www.news.ru/news.wav\",12);  
// Пример 5. Читает содержимое текстового документа, используя программу Govorilka_CP
// ключ Е указывает номер используемого голосового движка<=УстSAPI-1
ЗапуститьПриложение(\"D:\Programs\Govorilka\Govorilka_cp.exe\"+
\" -I -H5 –E1 -F D:\ReadMe.txt \");
//ЗапуститьПриложение(\"D:\Programs\Govorilka\Govorilka_cp.exe\"+
//\" -I –E0 \"+\" Сегодня \"+Формат(ТекущаяДата(),\"DDMMMMYYYY\")+\"года\");
КонецПроцедуры

 

Метод Speak объекта SPVoice предоставляет довольно большие возможности путём внедрения в текст специальных тэгов XML (см. раздел под название “XML TTS Tutorial”): Воспроизведение текста находящегося в файле. Асинхронный режим проигрывания звука, который позволяет функции вернуть управление немедленно, во время воспроизведения. Тэги позволяют также настроить тональность звучания, скорость воспроизведения и многое другое. После установки компонентов SAPI 4 [5] Вы можете столкнуться с ситуацией, когда приведенный выше программный код не будет работать. Если при запуске появляется сообщение об ошибке, то это означает, что в системном реестре в соответствующем разделе не сопоставлены строковое имя компонента, называемое ProgId (в нашем случае это "ActiveVoice.ActiveVoice.1") и уникальный идентификатор компонента CLSID, по которому операционная система находит нужную информацию для загрузки компонента. В таком случае необходимо дополнить реестр информацией вручную. Для Windows XP нужно создать текстовый файл "activevoice.reg" следующего содержания: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ActiveVoice.ActiveVoice.1] @="Direct Speech Synthesis" [HKEY_CLASSES_ROOT\ActiveVoice.ActiveVoice.1\Clsid] @="{EEE78591-FE22-11D0-8BEF-0060081841DE}" Затем в Проводнике Windows (WC, FAR) запустить этот файл на выполнение (нажать клавишу Enter) и согласиться с внесением изменений в реестр. На этом подготовка SAPI к работе завершена.

См. также

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    20113    dimanich70    81    

144

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    4090    3    John_d    11    

57

Универсальные функции Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    18039    atdonya    24    

56

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    5501    ke.92@mail.ru    16    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14728    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3578    56    progmaster    8    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    18476    171    sapervodichka    112    

135
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. support 4453 04.05.07 17:57 Сейчас в теме
2. d.snissarenko 152 05.05.07 09:39 Сейчас в теме
В принципе повторяет главу из Системного програмирования Михайлова, но все же +1
3. andrey995 06.05.07 15:24 Сейчас в теме
Мда... представил как в типовых 1С-ках комп будет говорить "теперь вставьте, пожалуйста, дискету для выгрузки отчетности для ИФНС"...
4. Abadonna 3968 02.06.07 07:45 Сейчас в теме
Могу точно указать основной трабл при использовании вышеописанного: НЕТ звуковых колонок на пользовательских компах! ;)
На очень не бедном заводе, где я до недавнего времени работал, меня бы прибили, если бы я сказал, что надо купить 150 (!) комплектов колонок, для всех зарегистрированных пользователей 1С.
5. Abadonna 3968 02.06.07 07:54 Сейчас в теме
Но +1 стоит, однозначно
6. Delon 528 03.06.07 21:36 Сейчас в теме
Уважаемый Abadonna несомненно прав!
Но...статья посвящается не тем юзерам, коим
невелено иметь колонки, коим заклеевают USB и
пломбируют все что можно.
А - жертвам рейтенгового рэкета!!!
7. Vitaly 91 19.02.12 22:34 Сейчас в теме
Попробовал на WIN XP HE OEM под 1С 7.7 Чет не работает... Не обнаружен SpeechAPI... В реестр добавил, русский и англ. пакеты установил. В чем может быть проблемма?
8. luchyk007 20.02.12 07:26 Сейчас в теме
Интересно, не знал что так можно делать :)
9. Vitaly 91 23.02.12 14:07 Сейчас в теме
Спасибо автору! Все заработало! Несколько уточнений по практическому применению на WIN XP... Как выяснилось все ХР содержат уже установленный SAPI5, но для вызовов методов из примера автора все же обязательно установите SAPI4. SAPI5 и SAPI4 дружат и друг другу не мешают :) После установки и регистрации в реестре код из примера начинает работать, но на английском языке, т.к. срабатывает синтезатор речи для SAPI5 MS Sam по-умолчанию. Установка синтезаторов русской речи для SAPI4 вам не поможет! Остается добавить синтезатор русской речи для SAPI5, например ScanSoft Katerina full 22 kHz.msi. И... Все работает. Проверено и реализовано на практике.
Много информации по данной теме с примерами и готовыми скриптами:http://mifoteka.ru/reading_aloud/voice_synthesizeres/voice_synthesizeres.htm.
Автору однозначный ПЛЮС!
CaSH_2004; +1 Ответить
10. пользователь 14.07.24 23:38
Сообщение было скрыто модератором.
...
Оставьте свое сообщение