@kvellou

Голосовой ассистент на c#. С чего начать? Что надо изучить? Как реализовать(это мой первый проект)?

В школе в 29 апреля проводится школьный фестиваль проектов, в котором каждый ученик представляет свой проект на выбранном предмете. Я выбрал тему голосового ассистента так как это интересно и нужно. Так как удобным языком для проекта это c#. Я потратил месяц на изучение основ c#(массив , цикл, перечисления, коллекции , классы, конструкторы).
Но теперь не знаю куда дальше идти. В планах конечно ещё изучение с курсом Программирование на C# 5.0. Можете посоветовать что надо делать дальше?
  • Вопрос задан
  • 321 просмотр
Решения вопроса 1
@Dmtm
Android
мы говорим об ассистенте по принципу "заранее заданная фраза = команда"
т.е. задача сводится к сравнению образца звука с поступившим,
если не трогать преобразование Фурье, нормализацию, спектр и все такое,
то можно попробовать через нейросеть
есть массив дискретизации звука, например 100000 элементов, это входы нейросети
задача нейросети - подобрать коэффициенты узлов чтобы поступивший звук считался допустимо близким к образцу
т.е. сначала пользователь сидит и повторяет одну и ту же фразу, 100-200-...1000-10000 раз,
нейросеть пересчитывает узлы (по сути - выделяются существенные признаки образца),
в каком-то приближении, когда-то, к какой-то погрешностью - эта конкретная фраза начнет распознаваться,
даже с учетом того что громкость, интонация, скорость у пользователя будут чуть отличаться каждый раз...
после этого можно будет переходить ко второй фразе со своей нейросетью
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Griboks
@Griboks Куратор тега C#
Если это ваш первый проект, то никак. Но если очень хочется, то:
1) найдите готовый голосовой ассистент
2) соpдайте свой пользовательский интерфейс вокруг готового ассистента
Ответ написан
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Если прям совсем с нуля писать, то следующие лет десять надо будет учить программирование, алгоритмы, кучу математики, вероятно нейросети. Но получится всё равно сильно хуже яндексовой Алисы, так как такие проекты в одиночку на коленке не пишут. Если же можно опираться на готовые решения, то стоит изучить документацию по открытым API существующих голосовых помощников и интегрировать своё приложение с одним из них.
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
1. Поищи библиотеки, пригодные для распознавания русской речи и имеющие привязку к C#.
2. Найди их документацию, там наверняка есть простые примеры работы.
3. Выбери ту, которая кажется наиболее простой и удобной.
4. Разбери пример, как обнаружить, записать и распознать фразу.
5. Продумай, как ты будешь по тексту фразы определять команду. Вопросы, на которые придётся найти ответ:
- Как отличить разговор от обращения к помощнику (подсказка: "окей, гугл", "алиса", и т.п.)?
- Как описывать отдельные команды помощника? Как классы, как методы...
- Как определять, какая команда была произнесена?
- Как извлекать параметры команды (в простых случаях хватит регулярных выражений, в сложных придётся ещё тащить библиотеки обработки естественных языков типа Natasha)?
- Могут ли команды перекрываться? Например, если мы сделали команду "таймер", можем ли мы пользоваться ботом, пока таймер не закончится?
- Как команда будет возвращать результат? Будет ли ей предоставлен какой-то класс/метод от бота, чтобы она могла "сказать" что требуется?
6. Аналогично разбери библиотеки для синтеза речи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы