如何将语音识别与我的相机应用程序集成?

时间:2011-11-19 03:12:24

标签: android camera speech-recognition voice

我正在尝试将语音识别功能集成到我的相机应用程序中,更具体地说,我希望我的相机打开,然后单击“收听”按钮,它会侦听单词“snap”,然后拍摄照片。我已经在应用程序上有一个按钮,它只是添加了语音部分。如何检查特定词语?

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

这显示了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);
    }

答案 2 :(得分:0)

要在获得用户说“Snap”的信号后实际拍摄照片,您必须实施相机应用的替代品。您可以查看相机预览示例应用程序(在API演示/图形中)以查看如何显示预览图像。 Camera类概述提供了有关如何实际捕获图像的详细信息。