Используемый в KooBAudio для доступа к речевым движкам компонент (встроенный в среду .NET Framework) при всех своих достоинствах (ограничивающихся по большому счету лишь качественным микшированием аудиосигнала и простотой использования) обладает весьма ощутимым недостатком:
Информацию об установленных движках он получает непосредственно из реестра WINDOWS, при этом совершено не заботясь о проверке корректности данных и обработке ошибок. В итоге первая же "кривая" запись, либо отсутствие необходимого параметра в реестре вызывает критическую ошибку, и использование компонента становится невозможным...
Если при запуске KooBAudio на стадии "Инициализация речевых синтезаторов" вылетает с отчетом, содержащим строки, начинающиеся с "System.Speech.Internal......" можно с уверенностью сказать, что имеет место ошибка в реестре.
Некоторые типы таких ошибок KooBAudio обнаруживает и предлагает исправить автоматически, но, к сожалению пока что далеко не все. Эта функция будет дорабатываться по мере моих возможностей. В остальных же случаях исправить проблему можно либо просто удалив "проблемный" голосовой дижок, либо исправив вручную записи в редакторе реестра...
Итак, для корректной работы программы записи о движках в реестре должны соответствовать следующим требованиям:
Раздел реестра с информацией о движках:
Для 32-битных версий Windows :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\ Для 64-битных версий Windows :
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Speech\Voices\Tokens\ В каждом подразделе содержится информация об одном движке.
Обязательно должен присутствовать подраздел
"Attributes", и в нем строковые параметры
"Name",
"Language",
"Age", и
"Gender" Строковые параметры не должны содержать недопустимых символов (нулевой символ, "кракозябры" и прочий мусор)
Пример, как должен выглядеть раздел движка "Nikolai":
Скрытый текст