Ответы пользователя по тегу Голосовой контроль
  • Как реализовать Python-код, который будет распознавать речь, но будет реагировать только тогда, когда будет упомянуто определенное слово?

    Vindicar
    @Vindicar
    RTFM!
    Проверяй, содержит ли/начинается ли распознанный текст на определённое слово.
    Как - гуглится, это основы работы со строками в питоне. См. метод startswith() и оператор in. Заодно глянь методы перевода строки в другой регистр типа lower() - может помочь убрать чувствительность к регистру.
    Для начала должно хватить.
    Ответ написан
    Комментировать
  • Голосовой ассистент на c#. С чего начать? Что надо изучить? Как реализовать(это мой первый проект)?

    Vindicar
    @Vindicar
    RTFM!
    1. Поищи библиотеки, пригодные для распознавания русской речи и имеющие привязку к C#.
    2. Найди их документацию, там наверняка есть простые примеры работы.
    3. Выбери ту, которая кажется наиболее простой и удобной.
    4. Разбери пример, как обнаружить, записать и распознать фразу.
    5. Продумай, как ты будешь по тексту фразы определять команду. Вопросы, на которые придётся найти ответ:
    - Как отличить разговор от обращения к помощнику (подсказка: "окей, гугл", "алиса", и т.п.)?
    - Как описывать отдельные команды помощника? Как классы, как методы...
    - Как определять, какая команда была произнесена?
    - Как извлекать параметры команды (в простых случаях хватит регулярных выражений, в сложных придётся ещё тащить библиотеки обработки естественных языков типа Natasha)?
    - Могут ли команды перекрываться? Например, если мы сделали команду "таймер", можем ли мы пользоваться ботом, пока таймер не закончится?
    - Как команда будет возвращать результат? Будет ли ей предоставлен какой-то класс/метод от бота, чтобы она могла "сказать" что требуется?
    6. Аналогично разбери библиотеки для синтеза речи.
    Ответ написан
    Комментировать
  • Не работает replace в голосовом ассистенте?

    Vindicar
    @Vindicar
    RTFM!
    Ну ты же явно какую-то глупость делаешь.
    if cmd == "sreachyoutube":
            search_term = cmd.replace("Кеша видео", " ")

    Если в переменной cmd лежит строка sreachyoutube(!), то там по определению не может содержаться подстроки "Кеша видео".
    Ответ написан
    8 комментариев
  • Как сменить язык речи в голосовом ассистенте?

    Vindicar
    @Vindicar
    RTFM!
    Гуглить пробовал? На первой странице выдачи этот ответ на StackOverflow.
    Если коротко:

    Зависит от установленных на компе голосовых движков. Проверь доступные движки так:
    import pyttsx3
    
    engine = pyttsx3.init()
    for voice in engine.getProperty('voices'):
        print(voice)

    Ищи голоса, у которых упомянут русский язык. Если нет - гугли, как их ставить.

    Определившись с голосом, пропиши его id в скрипте, например
    # тут id голоса, который ты выбрал
    voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_trTR_Tolga"
    engine = pyttsx3.init()
    engine.setProperty('voice', voice_id)
    Ответ написан
    Комментировать
  • Почему не видит путь/экзешник?

    Vindicar
    @Vindicar
    RTFM!
    Юра Милевский, вынеси код ядра в отдельный поток (через threading) или в отдельный процесс (через multiprocessing). В главном потоке/процессе оставь GUI.
    Общение организуй через threading.Queue или multiprocessing.Queue (смотря что используешь).
    У тебя GUI задаёт только настройки ядра, ведь так? Тогда ты когда опльзователь что-то меняет в GUI, ты кладёшь в очередь кортеж вида ("имя параметра", "значение параметра"). Ядро в свободное время проверяет наличие новых элементов в Queue, извлекает эти кортежи, и запоминает новые настройки уже локально у себя (например, в словаре). Ну и использует этот словарь, когда потребуется.

    Если потребуется усложнить взаимодействие, то усложни структуру данных, которую передаешь. Например, кортеж будет иметь вид ("Имя команды", ["параметры", "команды"]). Ядро должно будет эту команду уже как-то интерпретировать и выполнить. Так или иначе, ключевая идея такая - передаёшь через очередь только примитивные типы вроде строк и чисел, а также кортежи, списки и словари.

    А если понадобится передать что-то от ядра в GUI, то используй отдельную очередь, которую GUI будет проверять, а ядро - наполнять.
    Ответ написан
  • Как сделать голосовой ответ в голосовом помощнике на python?

    Vindicar
    @Vindicar
    RTFM!
    Окей, гугл, python text to speech.
    Ответ написан
    Комментировать