Mycroft-core: Mycroft의 μ €μ£Ό 단어 '****'차단은 검색 및 기타 κΈ°λŠ₯을 λ°©ν•΄ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 11μ›” 11일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: MycroftAI/mycroft-core

(이 버그 λ³΄κ³ μ„œμ˜ 경우 #### λŠ” 저주에 κ΄€ν•œμ΄ ν”„λ‘œμ νŠΈμ˜ 정책을 λͺ¨λ₯΄κΈ° λ•Œλ¬Έμ— 본인이 μ„ νƒν•œ 검열을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. **** λŠ” Mycroft κ²€μ—΄ 단어λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.)

μŠ€ν‚¬μ„ ν…ŒμŠ€νŠΈν•˜λŠ” λ™μ•ˆ λ‚˜λŠ” 그것이 같은 쿼리둜, λ³„ν‘œ (*)둜 κ²€μΆœ μš•μ„€μ„ 돌고 λ‚΄ μž…λ ₯의 ꡬ문 뢄석이 곳을 κΉ¨λ‹¬μ•˜λ‹€ " #### 당신은" "둜 ν•΄μ„λ˜κ³  $ **** λ‹Ήμ‹ ". 이것은 합리적인 κΈ°λ³Έκ°’ 일 수 μžˆμ§€λ§Œ λͺ…μ‹œμ μΈ 제λͺ©μ΄ 포함 된 앨범을 μž¬μƒν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.이 κΈ°λŠ₯은 ν•΄λ‹Ή κΈ°λŠ₯을 μ†μƒμ‹œν‚΅λ‹ˆλ‹€.

이것은 타사 기술뿐만 μ•„λ‹ˆλΌ 핡심에 영ν–₯을 λ―ΈμΉ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

μž¬ν˜„ 단계 :

  1. κΉ¨μ–΄ λ‚œ 말 뒀에 μ €μ£Όλ₯Ό λ§ν•˜μ‹­μ‹œμ˜€. 예 : "Hey Mycroft, #### you." (λ…Έλž˜ 제λͺ©μ„ κ²€μƒ‰ν•˜λŠ” 경우 "Hey Mycroft, NWAμ—μ„œ #### κ²½μ°° μž¬μƒ"κ³Ό 같이 말할 수 μžˆμŠ΅λ‹ˆλ‹€.)

κ΄€μ°° 된 행동 :
MycroftλŠ” " #### κ·€ν•˜"λ₯Ό " **** κ·€ν•˜"λ‘œλ³΄κ³ ν•˜κ³  ν•΄μ„ν•©λ‹ˆλ‹€.

μ˜ˆμƒλ˜λŠ” λ™μž‘ :
MycroftλŠ” λͺ…μ‹œμ μΈ 제λͺ©μ΄μžˆλŠ” λ…Έλž˜λ₯Ό μž¬μƒν•˜λŠ” 데 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— μ €μ£Ό 단어λ₯Ό κ²€μ—΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ„ νƒμ μœΌλ‘œ 이것은 ꡬ성 κ°€λŠ₯ν•˜κ³  λ¬Έμ„œν™” 된 λ™μž‘μ΄μ–΄μ•Όν•©λ‹ˆλ‹€.

16:50:56.682 - mycroft.client.speech.listener:transcribe:144 - DEBUG - STT: f*** you                               
16:50:56.682 - __main__:handle_utterance:55 - INFO - Utterance: [u'f*** you'] 
Bug - quick hacktoberfest help wanted

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ €λŠ” 저지 μΆœμ‹ μ΄κ³  λ§Ήμ„Έλ₯Ό λ§Žμ΄ν•©λ‹ˆλ‹€. 이것은 λ‚˜μ—κ²Œλ„ λ¬Έμ œμž…λ‹ˆλ‹€.

λͺ¨λ“  8 λŒ“κΈ€

(이것은 ν”„λ‘œμ νŠΈμ— λŒ€ν•œ λ‚˜μ˜ μƒˆλ‘­κ³  비정상적인 성격에도 λΆˆκ΅¬ν•˜κ³  μ‹€μ œλ‘œ μ‹€μ œ λ²„κ·Έμž…λ‹ˆλ‹€.)

λ‚˜λŠ” 이것도 λ§Œλ‚¬λ‹€. κΈ°λ³Έκ°’ λŒ€μ‹  μ˜΅μ…˜μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 것이 훨씬 λ‚«μŠ΅λ‹ˆλ‹€.

이것은 μ§€λ‚œμ£Όμ— λ…Όμ˜λ₯Όμœ„ν•œ κ²ƒμ΄μ—ˆκ³  결둠은 이것을 끄도둝 λ³€κ²½ν•˜λŠ” 것이라고 μƒκ°ν•©λ‹ˆλ‹€. @matheuslima에 λŒ€ν•΄ μ–ΈκΈ‰ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

μ €λŠ” 저지 μΆœμ‹ μ΄κ³  λ§Ήμ„Έλ₯Ό λ§Žμ΄ν•©λ‹ˆλ‹€. 이것은 λ‚˜μ—κ²Œλ„ λ¬Έμ œμž…λ‹ˆλ‹€.

이 λ¬Έμ œμ— λŒ€ν•œ 진전이 μžˆμŠ΅λ‹ˆκΉŒ? 검열은 정말 μ§œμ¦λ‚©λ‹ˆλ‹€.

이 λ¬Έμ œκ°€ 처음 μ œκΈ°λ˜μ—ˆμ„ λ•Œ μ €λŠ” 주변에 μ—†μ—ˆκΈ° λ•Œλ¬Έμ— ν† λ‘ μ˜ 일뢀가 μ•„λ‹ˆμ§€λ§Œ μ‹€μ œλ‘œλŠ” 검열을 μˆ˜ν–‰ν•˜λŠ” Google STT μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. ν•΄μ œ μš”μ²­μ— μ„€μ •ν•  μˆ˜μžˆλŠ” ν”Œλž˜κ·Έκ°€ μžˆλŠ”μ§€ ν™•μΈν•΄μ•Όν•©λ‹ˆλ‹€. 이미 μ•Œκ³  κ³„μ‹œλ‹€λ©΄ μ°¨μž„ ν•΄μ£Όμ„Έμš”.

이 λ¬Έμ œμ— λŒ€ν•œ μ•„μ£Ό κ°„λ‹¨ν•œ 훑어보기λ₯Ό 톡해 λ‹€μŒμ„ 확인할 μˆ˜μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

  • Mycroftκ°€ μ§€μ›ν•˜λŠ” λŒ€λΆ€λΆ„μ˜ STT μ„œλΉ„μŠ€ (ν˜„μž¬ Google STTκ°€ κΈ°λ³Έκ°’ μž„)μ—λŠ” API에 μ „λ‹¬λ˜λŠ” profanity_filter ν”Œλž˜κ·Έκ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • 마이 ν¬λ‘œν”„νŠΈμ˜ STT ν΄λž˜μŠ€μ—μ„œ, μ΄κ²ƒμ€μ—λ‘œ μ„€μ • false 을 μœ„ν•΄ IBMWatson STT ν΄λž˜μŠ€μ— 따라 : μ½”λ“œ 쀄 κ·ΈλŸ¬λ‚˜μ΄ 맀개 λ³€μˆ˜λ₯Ό μ„€μ •ν•˜μ§€ μ•ŠλŠ” κ²ƒμœΌλ‘œ GoogleSTT 클래슀.

  • GoogleSTT ν΄λž˜μŠ€μ—μ„œλŠ”μ΄ 맀개 λ³€μˆ˜ κ°€ μ„€μ •λ˜μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ 보이며 이것이이 문제의 κ·Όλ³Έ 원인이라고 μƒκ°ν•©λ‹ˆλ‹€. λ‹€μŒμ€ Google의 STT에 λŒ€ν•œ λ¬Έμ„œμž…λ‹ˆλ‹€ . 맀개 λ³€μˆ˜λŠ” ProfanityFilter μž…λ‹ˆλ‹€.

  • κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” GoogleSTT ν΄λž˜μŠ€μ—μ„œ profanity_filter λ₯Ό false 둜 μ„€μ •ν•˜λŠ” 것이 닡이 μ•„λ‹ˆλΌκ³  μƒκ°ν•©λ‹ˆλ‹€. Wake Words 및 STT 엔진 및 TTS μŒμ„±μ΄ https://account.mycroft.ai/μ—μ„œ μž₯μΉ˜λ³„λ‘œ μ„€μ • 될 μˆ˜μžˆλŠ” κ²ƒμ²˜λŸΌ μ‚¬μš©μžμ—κ²Œ μž₯μΉ˜λ³„λ‘œμ΄λ₯Ό μ„€μ •ν•  μˆ˜μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μž₯치 /

  • λ”°λΌμ„œ 이상적인 κ΅¬ν˜„μ„ μœ„ν•΄ Mycroft Home λ°±μ—”λ“œλ₯Ό λ³€κ²½ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

ν•΄κ²° λ°©λ²•μœΌλ‘œ μ‹œλ„ν•œ 것은 mycroft.conf μƒˆλ‘œμš΄ self.config λ³€μˆ˜λ₯Ό κ΅¬ν˜„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

  // Profanity filter
  "profanity_filter": false,

그러면 STT ν΄λž˜μŠ€μ— λŒ€ν•œ 지원이 ν•„μš”ν•©λ‹ˆλ‹€. 즉, STT κΈ°λ³Έ ν΄λž˜μŠ€μ—μ„œ μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

class STT(metaclass=ABCMeta):
    """ STT Base class, all  STT backends derives from this one. """
    def __init__(self):
        config_core = Configuration.get()
        self.lang = str(self.init_language(config_core))
        config_stt = config_core.get("stt", {})
        self.config = config_stt.get(config_stt.get("module"), {})
        self.credential = self.config.get("credential", {})
        self.recognizer = Recognizer()
        self.can_stream = False
        # set profanity filter
        self.profanity_filter = self.config.get('profanity_filter')

    <strong i="36">@staticmethod</strong>
    def init_language(config_core):
        lang = config_core.get("lang", "en-US")
        langs = lang.split("-")
        if len(langs) == 2:
            return langs[0].lower() + "-" + langs[1].upper()
        return lang

    <strong i="37">@abstractmethod</strong>
    def execute(self, audio, language=None, ProfanityFilter=self.profanity_filter):
        pass

(이 μ‹œμ μ—μ„œ λ‚΄ λ§ˆμ΄ν¬κ°€ μ΄μƒν•œ 이유둜 Mycroft와 μž‘λ™μ„ 멈 μ·„κ³ , 마이크λ₯Ό λ‹€μ‹œ μž‘μ„ 수 μ—†μ—ˆκΈ° λ•Œλ¬Έμ— ν…ŒμŠ€νŠΈλ₯Ό 계속할 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€)

이것은 μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. ProfanityFilter λŠ” μ—¬μ „νžˆ True 둜 μ„€μ •λ˜κ³  *** λŠ” 남아 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이것은 이것을 ν•΄κ²°ν•˜λ €λŠ” λ‹€λ₯Έ μ‚¬λžŒλ“€μ—κ²Œ λ‹¨μ„œκ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

Google STT λͺ¨λ“ˆμ„ ν…ŒμŠ€νŠΈν–ˆλŠ”λ° μš•μ„€ ν•„ν„°κ°€ 기본적으둜 κΊΌμ ΈμžˆλŠ” 것 κ°™μ§€λ§Œ Google ν΄λΌμš°λ“œ 계정을 μ‚¬μš©ν•˜λ €λ©΄ ν•œ μ‚¬λžŒμ΄ ν•„μš”ν•©λ‹ˆλ‹€.

Mycroft λ°±μ—”λ“œ (Google Cloud Speech to Text μ„œλΉ„μŠ€κ°€ μ•„λ‹ˆμ§€λ§Œ Google의 λ‹€λ₯Έ 이전 API 쀑 ν•˜λ‚˜)μ—μ„œ μ‚¬μš©ν•˜λŠ” APIλŠ” 항상 ν™œμ„±ν™”λ˜μ–΄ 있으며 μ˜¬λ°”λ₯΄κ²Œ κΈ°μ–΅ν•  경우 끌 수 μ—†μŠ΅λ‹ˆλ‹€.

ꡬ성 섀정은 μ•„λ§ˆλ„ 쒋은 생각 일 κ²ƒμž…λ‹ˆλ‹€. λ‚΄ μ˜κ²¬μœΌλ‘œλŠ” 기본값이 κΊΌμ Έ μžˆμ–΄μ•Όν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰