Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Alex Ingor
118 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 26
1

Программа зависает после анализа голосовых движков

08.02.2013, 03:28. Просмотров 1320. Ответов 26
Метки нет (Все метки)

В своей программе я использую слегка модифицированную "стандартную" процедуру для анализа установленных в системе голосовых движков и заполнения комбобокса (в моем случае - комбобоксов) их выбора:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  procedure LEARN_ENGINES;
  var
    NumFound : DWord;
    ModeInfo : TTSModeInfo;
  begin
    try
      {Инициализация аудиоустройства}
      CoCreateInstance(CLSID_MMAudioDest, Nil, CLSCTX_ALL,
             IID_IAudioMultiMediaDevice, fIAMM);
    except
    end;
    {Создание перечисляемого объекта для перебора всех движков в системе
     с помощью интерфейса ITTSEnum}
    CoCreateInstance(CLSID_TTSEnumerator, Nil, CLSCTX_ALL,
                                           IID_ITTSEnum, aTTSEnum);
    aTTSEnum.Reset;//Сбрасываем на первый
    aTTSEnum.Next(1, ModeInfo, @NumFound); {Получаем первый движок}
    While NumFound > 0 do
    begin
      s:=String(ModeInfo.szModeName);
      if pos('RUS',UpperCase(s))>0 then
        COMBO_VOICE_RUS.Items.Add(s)
      else
        COMBO_VOICE_ENG.Items.Add(s);
      aTTSEnum.Next(1, ModeInfo, @NumFound); {Получаем остальные}
    end;
  end;
Программа нормально работает, в том числе и этот модуль, но после закрытия программы она остается "висеть" в памяти, закрывается только ее видимая часть. Вопрос: Какие действия надо предпринять при закрытии программы, чтобы избежать этого?
PS То, что в неполном закрытии программы виноват именно этот код, убедился точно.
PPS Код брал отсюда.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2013, 03:28
Ответы с готовыми решениями:

Программа зависает при выводе дерева после право-симметричной прошивки
Если эту функцию (Insertion) не вызывать, все хорошо. Если вызывать (см....

После нажатия 'WIN+D' или "свернуть все окна" программа зависает
Здравствуйте, такая проблема. После нажатия WIN+D или "свернуть все окна" моя...

Программа для анализа текста в Delphi
Всем привет! Программировать начал не очень давно, есть базовые навыки Delphi....

Программа для анализа возраста человека
Помогите написать код Delphi. Написать программу, которая анализирует возраст...

После старта потока файл начинает загружаться, после чего поток зависает
Доброго времени суток! Помогите найти ошибку. После старта потока файл...

26
angstrom
2471 / 1847 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
09.02.2013, 15:42 21
Скачал и установил движок. Тесты движка работают нормально. Запускаю программу, долго думает (молча) и выдаёт ошибку деления на 0. Пока неясно откуда ноги растут у ошибки.

Добавлено через 1 час 35 минут
Выяснилась "интересная" вещь. Установлен голос "Алёна", при этом некоторые слова читаются, а на некоторые "вылетает" ошибка деления на 0 - возможно проблемы с данным голосом. В любом случае программа всегда завершается полностью (в памяти ничего не остаётся).
1
Alex Ingor
118 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 26
09.02.2013, 16:23  [ТС] 22
Спасибо, angstrom, за всю оказанную помощь. Главное - я выяснил, что дело не в программе, а в системе. Само по себе, это подвисание не страшно - процессор она не нагружает, только занимает 13 мег памяти. Буду экспериментировать дальше, может удастся найти причину.
А Алена точно так же и у меня себя ведет. Пришлось от нее отказаться и перейти на Николая. Хотя жаль - приятный голос у Алены.
0
angstrom
2471 / 1847 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
09.02.2013, 17:08 23
Похоже дело не в голосе, когда запускаешь "Voice Manager", тот же голос читает любой текст.
Не получается чешский запустить - слетают любые программы чтения. Выдает ошибку "деление на 0 "
на одном из форумов нашёл, причина также неизвестна.

P.S. У меня не подвисает, всё закрывается полностью.

Добавлено через 37 минут
Ошибка синтезирования речи:
Floating point division by zero

Ошибка как правило возникает если версия голосового синтезатора не поддерживает один из режимов чтения установленный в программе SAPI4\SAPI5. Для устранения ошибки попробуйте переключить режим SAPI4\SAPI5 в программе для чтения либо обновить версию голосового модуля на самую актуальную.
в файле speech.pas нет информации о SAPI5, нужно искать другой файл.
0
Alex Ingor
118 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 26
09.02.2013, 17:19  [ТС] 24
Цитата Сообщение от angstrom Посмотреть сообщение
У меня не подвисает, всё закрывается полностью
Я это понял, буду искать причину. Самое забавное, что эта проблема не исчезает даже после полной переустановки системы. И, кстати, вполне вероятно, что причина именно в ней - у меня Зверь, возможно в нем удалены какие-то важные компоненты.
0
angstrom
2471 / 1847 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
09.02.2013, 17:30 25
Так ведь не виснет твоя программа и все варианты здесь выложенные. Может и "Зверюга" виноват.
0
Alex Ingor
118 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 26
09.02.2013, 17:41  [ТС] 26
Цитата Сообщение от angstrom Посмотреть сообщение
в файле speech.pas нет информации о SAPI5, нужно искать другой файл.
Я вот чего не могу понять - в speech2 действительно нет информации о SAPI5, только SAPI4. Но установленные голоса в ней нормально работают, не слетают. А они, как выяснилось, все SAPI5 (по крайней мере, три последние):
Название: 2013-02-09_153209.jpg
Просмотров: 41

Размер: 14.5 Кб
0
angstrom
2471 / 1847 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
09.02.2013, 17:43 27
Я установил только один голос.
1
09.02.2013, 17:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2013, 17:43

Программа зависает
Всем привет, пишу программу для просмотра статистики майнинга и все вроде...

Зависает программа
сначала вылетала ошибка о переполнении вещественного типа переменной (205...

Зависает программа при отладке
Я столкнулась со следующей проблемой: При формировании результирующей таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru