| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > Говорилка для Автолиспа

Говорилка для Автолиспа

Ответ
Поиск в этой теме
Непрочитано 23.11.2010, 20:26 #1
Говорилка для Автолиспа
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

Заходим на сайт http://www.vector-ski.ru/vecs/govorilka/ и скачиваем бесплатную программу Говорилка. Не для ком. строки, а всю Govorilka222.zip в ней есть и Govorilka_cp. Также надо скачать речевой движок lhttsrur.zip

А вот и функция:
Код:
[Выделить все]
(defun dwgru-vocal-report (listattr / svr)
  (setq svr (vlax-get-or-create-object "WScript.Shell"))
  (setq svr1 (vlax-invoke-method svr "Exec" (strcat "C:\\Program Files\\Говорилка\\CP\\Govorilka_cp.exe " listattr)))
  (vl-catch-all-apply '(lambda () (vlax-release-object svr)))
 ); конец defun 

;| Примеры:
(DWGRU-VOCAL-REPORT "-P40 -E \"Adult Female #1, American English (TruVoice)\" \"Привет мужики! Ну и как вам эта говорилка?\"")
(DWGRU-VOCAL-REPORT "\"Блоков 3456\"")
(DWGRU-VOCAL-REPORT "\"Привет мужики! Ну и как вам эта говорилка?\"")
|;
Теперь все макросы могут говорить. Проверено. Возникнут трудности - спрашивайте.
Просмотров: 17580
 
Непрочитано 23.11.2010, 21:26
#2
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


можно чуток проще..
Код:
[Выделить все]
(DEFUN c:SAPI ()
 (setq sapi (vlax-create-object "Sapi.SpVoice"))
 (vlax-invoke sapi "Speak" "Would you like to play Global Thermo Nuclear War ?" 0)
 (vlax-release-object sapi)
)
написал Patrick_35 еще в начале 2007 года...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 23.11.2010, 22:21
#3
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


А где взять "Sapi.SpVoice" и заговорит ли он по русски?
Supermax вне форума  
 
Непрочитано 23.11.2010, 23:43
#4
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Supermax Посмотреть сообщение
А где взять "Sapi.SpVoice" и заговорит ли он по русски?
Они есть в стандартной поставке всех версий окошек, начиная с ХР.
Голосового движка на русском, в ХР вроде нет, но можно скачать рекомендуемые в говорилке. Вообще то, говорилка использует тот же API и запускает "Sapi.SpVoice"
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 24.11.2010, 10:12
#5
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Не понятно как прикрутить русскоязычный движок.
Sapi.SpVoice гворить хочет только по английски. А вот говорилка говорит по русски и женским голосом.
Supermax вне форума  
 
Непрочитано 24.11.2010, 10:33
#6
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Попробовал запустить #2, выдает это
Цитата:
; ошибка: no function definition: VLAX-CREATE-OBJECT
Autocad 2008 локализованный, XP sp3, 32 разряда.
Извиняюсь за встревание.

Еще раз извините, добавил это (vl-load-com), заработало.
Vildar вне форума  
 
Непрочитано 24.11.2010, 20:25
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,776
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Supermax Посмотреть сообщение
Не понятно как прикрутить русскоязычный движок.
Sapi.SpVoice гворить хочет только по английски.
Можно и по русски. Был бы язык доступен
1. Нужен SAPI 5.1 (пoиск в гугле по слову SAPI51.msi ) Скачать и установить.
2. Нужен голос (русский). Обзор существующих можно почитать здесь
В пoиск вбиваем Acapela-Elan-TTS-SpeechCube-5.1-RUS-Nicolai_MmE255_.msi Качаем и устанавливаем.
3. Теперь лисп.
Загружаем 2 функции и команду
Код:
[Выделить все]
(defun @Voice&TextInput(voice text / SpeekContent)
(setq SpeekContent (strcat "<VOICE REQUIRED='NAME=" voice "'>" text "</VOICE>"))
)
(defun @VoiceList(Sapi / i VoiceLst Voices)
(setq Voices (vlax-invoke Sapi 'GetVoices))
(setq i 0 VoiceLst '())
(repeat (vla-get-count Voices)
(setq VoiceLst (append VoiceLst 
(list (vlax-invoke (vla-item Voices i) 'GetDescription))))
(setq i (1+ i))
)
VoiceLst
)
(defun C:GETVOICE ()
(vl-load-com)
(setq Sapi (vlax-create-object "Sapi.SpVoice"))
(setq voices (@VoiceList Sapi))
(vlax-release-object Sapi)
(princ voices)(princ)
  )
Вызываем команду и смотрим список существующих голосов
Цитата:
Команда: getvoice
(LH Michael ELAN TTS Russian (Nicolai 16Khz) LH Michelle Microsoft Sam)
Если видим выделенное красным, то двигаемся дальше
Собственно двигаться и не нужно. Пример использования
Код:
[Выделить все]
(vl-load-com)
(setq Sapi (vlax-create-object "Sapi.SpVoice"))
(vlax-invoke Sapi "Speak" (@Voice&TextInput "ELAN TTS Russian (Nicolai 16Khz)"
"Всем привет. Если вы слышите этот текст, значит все прошло успешно") 0)
  (vlax-release-object Sapi)
Добавил файлик не помню откуда скачанный. Функции взяты из него.
Вложения
Тип файла: lsp SpeakCfg.lsp (6.1 Кб, 290 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.11.2010, 20:30
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,555


Все это конечно прекрасно, но пока этот гад не скажет, лисп работать не будет... Так что слово давать ему не стоит!
gomer вне форума  
 
Непрочитано 24.11.2010, 20:38
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,674


Ни к чему все это.
Profan вне форума  
 
Автор темы   Непрочитано 27.11.2010, 10:26
#10
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


(gomer), Мой вариант, с говорилкой тем и хорош, что запустив голос можно сразу продолжать работу в макросе. Можно остановить говорилку, если прошел переход на следующий уровень работы макроса.
А вот через СОМ, запущенный из собственного процесса, пока бла-бла-бла не закончится - макрос работать дальше не будет.
Supermax вне форума  
 
Непрочитано 28.01.2011, 19:25
#11
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,555


Цитата:
Сообщение от Supermax Посмотреть сообщение
Мой вариант, с говорилкой тем и хорош, что запустив голос можно сразу продолжать работу в макросе.
И как это будет звучать??? Уктукстууу...
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > Говорилка для Автолиспа

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать чертеж Решето с помощью Автолиспа BBLainer LISP 6 23.04.2010 15:23
Нужен список команд АвтоЛиспа BARS_1985 LISP 6 23.10.2007 07:02
Тема вопросы по Autolisp favorite LISP 5 13.04.2006 09:55