Как я могу интегрировать распознавание речи с моим приложением для камеры?

Я пытаюсь интегрировать распознавание речи в свое приложение для камеры, точнее, я хочу, чтобы моя камера открывалась, и вы нажимали кнопку «Слушать», и она прослушивала слово «щелчок», а затем делала снимок. У меня уже есть кнопка в приложении, она просто добавляет к ней голосовую часть. Как заставить его проверять конкретные слова?


person tjr2010    schedule 19.11.2011    source источник


Ответы (3)


См. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html Здесь показано, как добавить распознавание голоса в ваше приложение. http://developer.android.com/reference/android/speech/package-summary.html Этот пакет также полезен для справки.

person om252345    schedule 19.11.2011

Это показывает полное использование TTS и распознавания речи.

https://github.com/gmilette/Say-the-Magic-Word-

Также вам необходимо следующее:

Простой способ сопоставления - использовать этот цикл:

protected void receiveWhatWasHeard(List<String> heard,
        )
{
    WordDictionary command = new WordDictionary("Add");
    for (String said : heard)
    {
        if (command.isIn(said.split("\\s")))
        {
            Log.d(TAG, "heard add");
        }
    }
}

и этот класс:

public class WordDictionary
{
    private Set<String> words;

    public WordDictionary(String... wordsIn)
    {
        this(Arrays.asList(wordsIn));
    }

    public WordDictionary(List<String> wordsIn)
    {
        words = new LinkedHashSet<String>(wordsIn);
    }

    public Set<String> getWords()
    {
        return words;
    }

    public boolean isIn(String word)
    {
        return words.contains(word);
    }

    public boolean isIn(String [] wordsIn)
    {
        boolean wordIn = false;
        for (String word : wordsIn)
        {
            if (isIn(word))
            {
                wordIn = true;
                break;
            }
        }
        return wordIn;
    }

}

И ваша деятельность нуждается в этом:

@Override
    protected void
            onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (requestCode == VOICE_RECOGNITION_REQUEST_CODE)
        {
            if (resultCode == RESULT_OK)
            {
                List<String> heard =
                        data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                for (int i = 0; i < heard.size(); i++)
                {
                    Log.d(TAG, i + ": " + heard.get(i));
                }
                receiveWhatWasHeard(heard);
            } else
            {
//fail
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
person gregm    schedule 19.11.2011
comment
я пытался импортировать приложение, которое у вас было внутри, и у меня возникли ошибки, не могли бы вы мне помочь? - person tjr2010; 20.11.2011

Чтобы на самом деле сделать фотографию, как только вы получите сигнал о том, что пользователь сказал «Snap», вам необходимо реализовать замену приложения «Камера». Вы можете посмотреть образец приложения для предварительного просмотра камеры (в Демонстрациях API/графике), чтобы увидеть, как отображать изображение для предварительного просмотра. А в обзоре класса Camera есть подробная информация о том, как на самом деле захватить изображение.

person jonawebb    schedule 19.11.2011