• android 语音识别技术


    偶然在网上看到。于是照着网上的例子写了一个例子。很简单,就是实现语音识别。后来的TTS没有做。

    直接贴代码

    View Code
    /**
     * 语音识别
     * 
     * @author sy
     * 
     */
    public class SpeakToActivity extends Activity
    {
        /** Called when the activity is first created. */
        private Button mSpeakButton;
    
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mSpeakButton = (Button) findViewById(R.id.openSpeak);
            mSpeakButton.setOnClickListener(new ButtonOnClick());
        }
    
        /**
         * button点击事件
         * 
         * @author sy
         * 
         */
        class ButtonOnClick implements OnClickListener
        {
    
            @Override
            public void onClick(View v)
            {
                try
                {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // 使用Intent开始语音识别
                    // //语言模式和自由模式的语音识别
                    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
                    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音");// 只是提示语音开始
                    startActivityForResult(intent, 10);// 对应onActivityResult方法中得requestCode
                } catch (Exception e)
                {
                    e.printStackTrace();
                    // 如果找不到语音设备则提示
                    Toast.makeText(SpeakToActivity.this, "找不到语音设备", Toast.LENGTH_LONG).show();
                }
    
            }
    
        }
    
        /**
         * activity回调函数,和startActivityForResult对应
         * 
         * @author sy
         */
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == 10 && resultCode == RESULT_OK)
            {
                ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); // 获取结果集
                String resultString = "";
                // 如果使用这段注释的代码,google则会返回5个类似于你发音的词
                // for (int i = 0; i < results.size(); i++)
                // {
                // resultString+=results.get(i);
                // }
                resultString += results.get(0);// 我默认选择了第一个
                Toast.makeText(SpeakToActivity.this, resultString, Toast.LENGTH_LONG).show();
            }
        }
    
    }
  • 相关阅读:
    css定位
    css遗漏
    php字符操作
    php类于对象
    php数组的操作
    php基础
    javascript显式类型的转换
    【模板】并查集
    图论三种做法:朴素版Dijkstra、堆优化(优先队列)Dijkstra、spfa(队列优化版Bellman-Ford)
    二分之一网打尽
  • 原文地址:https://www.cnblogs.com/sy171822716/p/2799130.html
Copyright © 2020-2023  润新知