4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
|
|
1 | |
Рекуррентная НС для распознавания речи17.04.2017, 14:05. Показов 1073. Ответов 3
Метки нет (Все метки)
Доброго времени суток. Стоит задача написать классификатор для кластеризации языка голоса.
Языка всего 2. Английский и русский. Хотел спросить правильно ли я понял проблему и правильно ли двигаюсь в реализации. В качестве признаков использую 13 MFCC + 13 deriv MFCC + 13 deriv deriv MFCC. В качестве классификатора использую рекуррентную нейронную сеть типа LSTM. Архитектура сети: 39-100-2: 39 - входных нейрона, 100 - юнитов LSTM 2 - выходных нейрона. Один отвечает за русский язык, второй за английский. Сформировал от разных дикторов по 10 часов ИКМ для каждого из языка. Получилось примерно по 150 файлов для каждого языка. Сформировал массив меток для обучения сети. [1 0] - если подаётся файл с русским языком, [0 1] - английский. Все файлы перед подачей перетасовываются. Далее делаю так: Подаю файл на сеть, прогоняю прямым ходом. Проверяю на сходимость. Если не сошлось: двигаюсь от конца к началу для каждого из признака MFCC + dMFCC + ddMFCC (метод обратного распространения ошибки). Другими словами, допустим для файла с русской речью, устанавливаю метку на выходе выставляю в [1 0] и прогоняю весь файл. После этого в обратном ходе делаю так Формирую дельту: ошибка -> выходной слой -> скрытый слой (LSTM) ошибка -> выходной слой -> скрытый слой (LSTM) ошибка -> выходной слой -> скрытый слой (LSTM) . . . ошибка -> выходной слой -> скрытый слой (LSTM) Коррекция весов. Далее беру следующий файл, допустим с английской речью выставляю метку на выходе в [0 1] и дальше как в прошлом случае: Формирую дельту: ошибка -> выходной слой -> скрытый слой (LSTM) ошибка -> выходной слой -> скрытый слой (LSTM) ошибка -> выходной слой -> скрытый слой (LSTM) . . . ошибка -> выходной слой -> скрытый слой (LSTM) и т.д. пока ошибки для всех файлов будут меньше заданного порога. Я правильно понимаю проблему? При реализации столкнулся с проблемой, что для одних файлов во время обучения ошибка уменьшается для других растёт. Допустим ели взять два файла, один с англ речью другой с русской, то для русского файла ошибка будет уменьшаться и идти на убыль, для английского напротив растёт, суммарная ошибка примерно равна 1, т.е. для одного языка уменьшается , для другого увеличивается. Не понимаю, где ошибка или что я делаю не так. В коде вроде ошибок нет, мне кажется где-то фундаментальная ошибка, т.е. я что-то не так понимаю и реализовал соответственно. Буду рад любой информации.
0
|
17.04.2017, 14:05 | |
Ответы с готовыми решениями:
3
Написать программу распознавания речи ПО для распознавания речи API для распознавания речи Существует ли бесплатная платформа для распознавания речи |
28 / 28 / 5
Регистрация: 27.10.2015
Сообщений: 89
|
|
18.04.2017, 05:18 | 2 |
Вряд ли вам можно конкретно чем-то помочь досконально не разбираясь в теории.
Я не специалист по LSTM, но при использовании любой нейронной сети всегда возникает вопрос: Достаточна ли топология сети для классификации нужных классов с заданными параметрами точности. Очевидно вы не можете взять сеть с 10-ю элементами и качественно разделить, например, тысячу классов. Второй вопрос, представительны ли сами по себе MFCC признаки для достаточно оптимального разделения языков. Я так понимаю задача должна решаться таким способом? Собственно ответы на эти два вопроса скорее всего и обозначат проблему. Проверяйте сам алгоритм реализации LSTM на тестовом известном примере, чтобы исключить ошибки. Далее корректируйте топологию сети в соответствии с рекомендация построения топологий LSTM в разрезе данной задачи.
0
|
Заблокирован
|
|
18.04.2017, 05:48 | 3 |
Может стоит подумать над другим подходом? Сделать один выходной нейрон степень возбуждения которого расценивать как вероятность того какой это из языков?
НАсколько понимаю это называется переобучение Еще один вариант - две сети каждая с одним выходом. Выход дает вероятность того что это язык которому она обучена. Из них выбирается с максимальной вероятностью. Такой подход даст возможность добавлять другие языки не боясь переобучения.
0
|
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
|
|
18.04.2017, 16:38 [ТС] | 4 |
Всем спасибо за ответы.
P.S. Нашёл в чём была проблема, нужно было увеличить длительность окна MFCC.
0
|
18.04.2017, 16:38 | |
18.04.2017, 16:38 | |
Помогаю со студенческими работами здесь
4
Базы русской речи для синтеза и распознавания Транскрипции слов составления словаря для распознавания речи Требуется С/С++ программист для работы с библиотекой распознавания речи Использование Google Voice Search для распознавания речи Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |