Задать вопрос
THEROER
@THEROER

Как мне убрать весь текст кроме определённого слова?

Короче объясню по другому
Я пишу голосового помощника
И мне надо что когда я говорю 123123123 запусти discord
он его запускал а у меня получается ужасный спам

import os
import time
import speech_recognition as sr
from fuzzywuzzy import fuzz
import pyttsx3
import datetime
import pyautogui
import subprocess
from os import startfile
from psutil import process_iter
from time import sleep
import string
import re


def talk(words):
    engine = pyttsx3.init()
    engine.say(words)
    engine.runAndWait()

talk("Слушаем")

def command():
    r = sr.Recognizer()

    with sr.Microphone(device_index = 1) as source:
        audion = r.listen(source)
    try:
        task = r.recognize_google(audion, language = "ru-RU").lower()
        print(f"[log] Условия: {task}")
    except:
        task = command()

    return task

def working(task):
    cmd_run = ["запусти ","запустить ","открой "]
    conductor = "проводник"
    loyd = "лойд","лойда","лайдон","лайда"
    spotify = "spotify","спотифай"
    cmd = 'cmd','цмд'
    discord = 'discord','дискорд'
    opera = "opera","оперу","опера"
    all_applications = ["проводник","лойд","лойда","лайдон","лайда","spotify","спотифай","cmd","цмд","discord","дискорд","opera","оперу","опера"]
    print(all_applications)
    for word in cmd_run:
        for x in all_applications:
            cmd_run=(f'{word}{x}'+' ')
            print(cmd_run)
            try:
                cmd_run = task.replace('запусти ', "")
                if task == cmd_run:
                    cmd_run = task.replace('запустить ', "")
                    if task == cmd_run:
                        cmd_run = task.replace('открой ', "")
                if not task == cmd_run:
                    if cmd_run in spotify:
                        talk("Запускаю")
                        os.startfile(r'C:\Users\Даня\AppData\Roaming\Spotify\Spotify.exe')
                    if cmd_run in cmd:
                        talk("Запускаю")
                        os.startfile(r'C:\WINDOWS\system32\cmd.exe')
                    if cmd_run in discord:
                        talk("Запускаю")
                        os.startfile(r'C:\ProgramData\Даня\Discord\Update.exe')
                    if cmd_run in opera:
                        talk("Запускаю")
                        os.startfile(r'C:\Users\Даня\AppData\Local\Programs\Opera GX\launcher.exe')   
                    if cmd_run in loyd:
                        talk("Запускаю")
                        os.startfile(r'C:\Python\Loyd\Loyd.bat')
                    if cmd_run in conductor:
                        talk("Запускаю")
                        pyautogui.keyDown('winleft')
                        pyautogui.press('e')
                        pyautogui.keyUp('winleft')
            except:
                task = command()
    print(cmd_run)

while True:
    working(command())

Результат:
C:\Users\Даня\AppData\Local\Programs\Python\Python37\lib\site-packages\fuzzywuzzy\fuzz.py:11: UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning
  warnings.warn('Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning')
[log] Условия: запусти spotify
['проводник', 'лойд', 'лойда', 'лайдон', 'лайда', 'spotify', 'спотифай', 'cmd', 'цмд', 'discord', 'дискорд', 'opera', 'оперу', 'опера']
запусти проводник
запусти лойд
запусти лойда
запусти лайдон
запусти лайда
запусти spotify
запусти спотифай
запусти cmd
запусти цмд
запусти discord
запусти дискорд
запусти opera
запусти оперу
запусти опера
запустить проводник
запустить лойд
запустить лойда
запустить лайдон
запустить лайда
запустить spotify
запустить спотифай
запустить cmd
запустить цмд
запустить discord
запустить дискорд
запустить opera
запустить оперу
запустить опера
открой проводник
открой лойд
открой лойда
открой лайдон
открой лайда
открой spotify
открой спотифай
открой cmd
открой цмд
открой discord
открой дискорд
открой opera
открой оперу
открой опера
spotify


Как исправить спам ?
  • Вопрос задан
  • 251 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 3
@LeoMay
Студент
Погугли "регулярные выражения", я думаю, ты это подразумевал
Ответ написан
Комментировать
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
Если убрать всё кроме ОДНОГО слова, то не проще сразу использовать это слово?
Ответ написан
Комментировать
@dmshar
Убрать все слова, кроме заданного = оставить только заданное слово, причем повторить его столько раз, сколько оно встречалось в исходном тексте.

slovo='aaa'
text='aaa bbb ccc aaa ddd eee ccc aaa' 
text=(slovo+' ')*text.count(slovo)
text

Результат:
'aaa aaa aaa '
Ответ написан
Ваш ответ на вопрос

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

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