2011-02-12 2 views
3

안드로이드에서 음성 인식 기능을 사용하고 있습니다. 내 장치에서 말하고 가능한 단어 목록을 표시 할 수 있습니다.음성 인식, 사용자가 말한 것을 확인할 수있는 방법이 있습니까, 아마도 정규식을 통해 가능합니까?

나는 그것이 나에게 그것을 듣고 생각 다음 단어 준다 "시작"말 :

  • 재고
  • 정지
  • 시작
  • 스타크
  • 을 중지

    1. 주식을

    이 목록은 다양한 다른 요소들 중에서 사용자의 악센트에 의존합니다. 특정 단어에 대한 목록을 확인할 수있는 쉬운 방법이 있습니까?

    사용자가 "start"또는 "stop"명령을 실행하면 두 명령의 차이점을 알 필요가 있습니다.

    초기 생각은 어떤 반응에서 "sta"또는 "sto"를 확인하기 위해 정규식을 사용하는 것이 더 효과적인 방법입니까?

    +1

    이 태그를 다르게 지정하는 것이 좋습니다 (Java/Regex 일 가능성이 있습니다). Android를 사용하는 것보다 더 많은 사람들을 경험하게 될 것입니다. 게다가 당신의 질문은 음성 인식에 관한 것이 아닙니다. 음성 인식이 제공하는 문자열을 구문 분석/검색하는 방법에 관한 것입니다. – user432209

    답변

    3

    일반적으로 나는 돌아 오는 모든 단어에 대해 을 생성하고 찾고자하는 단어의 Soundexes와 전체 ​​목록을 일치하는 문자의 일부로 채점하고 해당 점수를 사용하여 단어가 일치 할 가능성이 큽니다.

    예를 들어,이이 S310로 인코딩 S363정지로 인코딩 시작 . 다음 표에 결과 문자의 비율로 단어에 대한 그 일치 채점 : 불행하게도

    Word Soundex S363 S310 
    ---- ------- ---- ---- 
    stocks S320  0.50 0.75 
    stock S320  0.50 0.75 
    stop S310  0.50 1.00 
    start S363  1.00 0.50 
    stops S312  0.50 0.75 
    starks S362  0.75 0.50 
           ---- ---- 
    Average Score 0.63 0.71 
    

    는이 잘못된 답변을 (당신은 당신이 당신이 말한 것을 알면서도 정지이 높다 말했다 확률로 온다 start) 두 단어의 공통점이 많기 때문에 인식기가 대상 단어 중 하나와 일치하고 동일한 단어를 다른 단어와 혼동하면 사용자가 실제로 말한 단어를 인식 할 수 없습니다.

    당신은 정지 또는 을 시작 이동처럼 그렇게 유사하지 않은 단어를 선택하여이 문제를 해결할 수 있습니다. 그런 다음 Soundex를 완전히 버리고 반환 된 목록에서 대상 단어를 찾습니다. 다른 언어에서도 비슷한 문제가 발생할 수 있으므로 (예 : 프랑스어의 경우 allezarrêtez) 응용 프로그램의 다른 언어 버전에서이 문제를 확인해야합니다.

    HTH.