@kvellou

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

В школе в 29 апреля проводится школьный фестиваль проектов, в котором каждый ученик представляет свой проект на выбранном предмете. Я выбрал тему голосового ассистента так как это интересно и нужно. Так как удобным языком для проекта это c#. Я потратил месяц на изучение основ c#(массив , цикл, перечисления, коллекции , классы, конструкторы).
Но теперь не знаю куда дальше идти. В планах конечно ещё изучение с курсом Программирование на C# 5.0. Можете посоветовать что надо делать дальше?
  • Вопрос задан
  • 309 просмотров
Решения вопроса 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. Аналогично разбери библиотеки для синтеза речи.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы