Название: [РЕШЕНО] Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 22, 2012, 10:35 Здравствуйте, добрый люди! :)
Если у кого нибудь завалялся проектик синтезации речи на с/с++ поделитесь пожалуйста!!! :) Можно просто минимально рабочий вариант :) Желательно чтобы он мог болтать на английском и русском :), работаю на виндоус Не подумайте, что я обнаглел - неделю мучился с синтезаторами, и не добился ничего, только замучился Спасибо :) Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Bepec от Октябрь 22, 2012, 10:42 Ня - заодно о впечатлениях расскажешь http://rutracker.org/forum/viewtopic.php?t=1842332
А так то голосовые движки дорогое удовольствие :) Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 22, 2012, 11:07 Он похоже очень хороший, но нужен движок в исходном виде, чтобы можно было пришить его в свою программу :)
Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Igors от Октябрь 22, 2012, 11:36 [/offtop]
Не то чтобы "обнаглел", а хочется "лазить" (скользть, порхать) "по всему интересному". И, как итог - ничем не заниматься серьезно. Вот чего-то найти/прикрутить барахольщику интересно, а сделать самому - уже нет :'( Ладно, не обращайте внимания на стариковское брюзжание, продолжайте пришивать рукав к.. Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Fregloin от Октябрь 22, 2012, 11:55 ну можно прикруить через SAPI(SpeechAPI). Я так делал на делфях и все работало. Ну это только в винде будет работать, как в других ОС прикручивать - хз.
Читаете про SAPI и как прикрутить к С++ проекту и все должно получиться. последовательность такая приблизительно: устанавливаете голоса находите описание API а также нужные заголовочные файлы прикручиваете к проекту и вызываете что то типа speek(фраза). все. на делфях это занимало не больше 5-10 минут. Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 22, 2012, 12:11 виндоусовое сапи вещь хорошая, да вот весит все таки многовато: в 5 раз больше самой моей программы, что не очень красиво :)
Мне вот подсказали, что могло быть проще и лучше, не код пришивать, а программу-tts с собой носить Когда нужно текст озвучить запускать tts через QProcess, передавая файл или текст, который хотим услышать, да и QProcess вроде может отследить, когда "его" программа закрывается, или пытается контактировать с ос А если при этом программа-tts будет скрыта от пользователя, то он может и не заметит хитрость :) Как думаете, этот вариант лучше? :) Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Bepec от Октябрь 22, 2012, 12:14 По очереди:
1) По теме - если ты хочешь прошить голосовой движок в свою программу, она будет занимать ещё больше, чем SAPI. Так же таких движков ограниченное число к сожалению(я когда искал не нашёл). 2) to Igors: Русскоязычный голосовой движок своими руками - пытался я сделать, ан нет, не всё так просто. Одних только сочетаний фонем дох... фига скажем так. Да и ещё отсутствие легкодоступной информации :) 3) gil9red % на 90 прав, по моему мнению. Ибо это наименее затратный по времени/усилиям/возможностям способ :) Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Igors от Октябрь 22, 2012, 14:42 2) to Igors: Русскоязычный голосовой движок своими руками - пытался я сделать, ан нет, не всё так просто. Одних только сочетаний фонем дох... фига скажем так. Да и ещё отсутствие легкодоступной информации :) Я к этому не призывал. Просто copy/paste в TextEdit, там нажал в менюшке - вот и speech. Насколько я знаю уже неск лет. Наверно можно и прямо из клипборды, но и так неплохо. Конечно можно всегда сказать "мне это необходимо, такая задача" - и это не обсуждается. Но есть верная примета - если так тянет "в прибамбасы", значит основной ф-ционал слаб, вот и пытаются добавить привлекательностиНазвание: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 23, 2012, 00:11 2) to Igors: Русскоязычный голосовой движок своими руками - пытался я сделать, ан нет, не всё так просто. Одних только сочетаний фонем дох... фига скажем так. Да и ещё отсутствие легкодоступной информации :) Я к этому не призывал. Просто copy/paste в TextEdit, там нажал в менюшке - вот и speech. Насколько я знаю уже неск лет. Наверно можно и прямо из клипборды, но и так неплохо. Конечно можно всегда сказать "мне это необходимо, такая задача" - и это не обсуждается. Но есть верная примета - если так тянет "в прибамбасы", значит основной ф-ционал слаб, вот и пытаются добавить привлекательностиПриходится мучится с синтезом речи, потому что:
Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 23, 2012, 15:45 Нашел программу, которая подходит по условиям: мало весит, многоязычная, бесплатная
называется eSpeak, вот ссылка на нее: http://espeak.sourceforge.net/download.html В этой сборке есть консольная версия, находится в директории "command_line" Минимальный код запуска через свою программу: Код: #include <QApplication> Для английского все работает, для русского - не совсем Цифры он прочтет на русском, а вот символы кирилицы...такое ощущение что он их код читает Может кто нибудь сталкивался с такой проблемой, или знаешь решение этой проблемы? :) Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Bepec от Октябрь 23, 2012, 18:48 Быгыгыгы. Весело талдычит. Можно ускорить чуть, на пару тонов выше -> голос пришельца готов :D
Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 23, 2012, 20:18 Bepec, у вас на русском талдычит? :)
Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Bepec от Октябрь 23, 2012, 22:22 Только цифры. Подозреваю дело в кодировке :)
Зато оч весело ему задавать что-то типа УУУУУУУУУУУУ!!! update - а вот его утилитка вполне прилично талдычит на раше :) Хотя и не без прикольных моментов. PS файлик вав(расширение поменяйте) в комплекте - хороший стишок получился :D update2: стандартная кодировка для него - UTF8. В командной строке винды задать его чегой то не получается, но из файла читает нормально (флаг -f). Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 24, 2012, 14:10 Смог с этой консольной программой продвинуться, но пришлось сильно поизвращаться (что раздражает), потому что, если запускать ее через QProcess::start она не будет показываться, но во время выполнения будет блокировать главный поток, а если запустить через QProcess::startDetach то блокировки не будет, но ее консольное окно будет видно, сделал так:
Создал второй проект, нужный только для запуска консольки espeak: Код: #include <QtGui/QApplication> и флаг и значением, например: -f "Путь к файлу..." а второй проект, будет запускать первый, который называется "ServiceEspeak.exe" и запускать будет так чтобы не блокировать свой поток: Код: void Widget::speak() Но мне этот код жутко не нравится, потому что это По крайней мере, он работает, и может и по русский и по английски болтать, главное указать язык русский и тогда кирилицу он скажет на русском, а латиницу - на английском, даже если кирилица и латиница есть в одном файле, который синтезатор обрабатывает Да вот, еще заметил, что консолька espeak не хочет работать на рабочем столе (наверное из-за русских символов в пути), но если скинуть в корень дисков (хоть флешек, то все ок), да и понять бы как эту программку, переносить на другие компы, ведь ей для работы нужны несколько папок, я их кидал к ней - не получается, кидал в те же директории где они должны находиться при установке (C:\Program Files\eSpeak\) - опять не работается, и только делая установку, удавалось запускать :( Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: mitrich от Октябрь 24, 2012, 20:08 Так собери из исходников DLL-ку и используй её через соотв. API. Документация - в файле speak_lib.h
Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 26, 2012, 02:15 Так собери из исходников DLL-ку и используй её через соотв. API. Документация - в файле speak_lib.h Не умею :( никогда их не собирал вне IDE, да и на винде работаю, у нее вроде нету стандартной команды makeНазвание: Re: Синтезаторы речи (Text-to-speech) Отправлено: xokc от Октябрь 26, 2012, 08:31 Не умею :( Научись :). Ну вот какого деяния ты от нас ждёшь? Чтобы мы собрали всем форумом тебе DLL?никогда их не собирал вне IDE, да и на винде работаю, у нее вроде нету стандартной команды make У нее вроде есть стандартный для MSVS nmake, не менее стандартный для Qt Creator jom и т.д. Создай, в конце-концов проект для своей IDE. Это кому надо-то нам, или тебе?Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 26, 2012, 09:54 эмммм...я вроде не писал, о помощи в сборке dll :)
Кроме того, в составе Qt Creator'a, на котором пишу, видел утилиты make (я не про qmake :)), если нужно скачаю такую :) Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: xokc от Октябрь 26, 2012, 13:18 в составе Qt Creator'a, на котором пишу, видел утилиты make (я не про qmake :)), make не входит в состав Qt Creator. make в том или ином виде (nmake, jom, mingw32-make и т.д. - это всё различные реализации make) входит в состав той системы сборки, которую использует QtCreator. Так что не надо ничего качать, make уже есть у тебя на компе, иначе QtСreator не смог бы собрать ни одного проекта. Просто возьми jom.exe из папки QtCreator\bin и считай, что это make и есть.Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: Igors от Октябрь 26, 2012, 13:37 А здесь солидарен с топик-стартером - тоже никогда не "собирал", потому что "не разбрасывал". IDE в котором я работаю показывает длинную соплю командной строки и для компилятора и для линкера, но я никогда не понимал какой (зверячий) кайф в знании всех этих "ключиков".
Кстати любая либа для Вындоуз идет с проектом(ами) MSVC. Если (почему-то) нет - можно сделать свой проект и компилять цивильно через F7 Название: Re: Синтезаторы речи (Text-to-speech) Отправлено: gil9red от Октябрь 26, 2012, 14:45 xokc, спасибо за подробные пояснения :)
В исходниках библиотеки eSpeak, есть и make-файл, и файл проекта, для виндовс - файлы *.dsp и *.dsw, так что у меня есть выбор, а это уже не мало :) |