2017-04-24 3 views
-1

나는 아랍어 음성 인식이 안드로이드 장치에 사용되도록 화합과 게임을 만들려고합니다. 나는 음성 인식 도구에 갇혀있다. 어느 것이 화합에 더 적합합니까? Google API를 직접 사용할 수 있습니까? 그렇다면 데이터를 제어 할 수 있습니까?안드로이드에 유니티 게임 엔진, 스핑크스와 구글 연설 api

또는 스핑크스가 안드로이드 기기 게임에 더 적합합니까? 나는 스핑크스에 대해 읽었지 만 아랍어의 음향 모델은 사용할 수 없지만 그것을 위해.

나는 MATLAB을 사용하여 만들려고했지만 MATLAB 코더를 사용하여 모바일에서 빌드하는 데 많은 비용이 들며 모든 필수 라이브러리가 필요하지는 않습니다.

어떤 도움이 필요합니까?

답변

0

공식 유니티 플러그인은 여기에 있습니다 :

https://github.com/cmusphinx/pocketsphinx-unity-demo

아랍어 모델 예, 훈련되어야한다. 결국 좋은 시스템을 가질 수는 있지만 충분히 투자해야합니다.

+0

제공되는 링크는 안드로이드 용 OSX 용입니다. –

0

Speech and Android의 경우 Google 플랫폼이 가장 좋습니다. 문제는 플랫폼에 대한 호출이 필요하다는 것입니다. 시도하지 않은 오프라인 버전이 있습니다. Offline Speech Recognition In Android (JellyBean) Google 플랫폼의 경우 Asset Store에서 20 달러에 저렴한 플러그인이 있습니다.

주요 문제는 연속 탐지를 제공하지 않으므로 녹음을 시작하고 전송을 중지해야합니다. 어쩌면 당신에게 적합 할 수도 있습니다. 문제는 많은 사용자가있는 경우 한 달에 1 시간 만 사용 가능하므로 서버 사용료를 지불해야합니다. 나는 그것이 $ 0.015/분 정도라고 생각한다. 다른 한편으로는 80 개 이상의 언어로 지역 악센트를 포함합니다.

CMUSphynx는 다른 솔루션입니다. Opensource 및 오프라인 기능으로 좋은 선택입니다. 우리는 Unity를위한 우리 자신의 Android 플러그인을 생각해 내야했지만 우리는 사용량을 줄이기 위해 열악한 결과를 보았습니다. (묻기 전에, 아뇨, 불행히도 플러그인을 제공 할 수는 없습니다 ... NDA 관련). 또한 언어는 제한되어 있습니다.

Nuance와 같은 다른 솔루션이 있지만 더 좋지만 비용이 많이 듭니다 (데모 게임의 범위를 벗어날 가능성이 큽니다). 그들의 API는 자동 리다이렉션을 위해 폰을 통한 음성과 같은 전문적인 상황에서 더 많이 발전되고 정기적으로 사용됩니다. 또한 Vuzix 장치에도 사용됩니다.

Google 음성을 사용할 수 있다고 생각하면 데이터를 제어 할 수 있습니다. 기본적으로 오디오 파일을 녹음하여 서버에 보내면 서버는 인식 된 단어 목록이 포함 된 json 객체로 성공 확률로 응답합니다.

첫 번째 콘텐츠를 가져 와서 콘텐츠를 파싱합니다. 당신이 원하는 고려하면 이동 동작을 얻기 위해 그 결과는 다음과 같습니다 pocketsphinx에 대한

// This is the result from GSP 
    string str = "Move player one unit"; 

    if(str.Length == 4) 
    { 
     // Parse 
     string action = str[0]; 
     string actor = str[1]; 
     string amountStr = str[2]; 
     string unit = str[3]; 
     // Convert 
     float amoutFl = ParseAmount(amountStr); 

     // Check 
     if(hashSetActor.Contains(actor) == false){ // error } 
     if(hashSetUnit.Contains(unit) == false){ // error } 
     if(actionDictionary.Contains(action)) 
     { 
      // Act 
      actionDictionary[action](actor, amountFl,unit); 
     } 
    }