现在的位置: 首页 > 综合 > 正文

android语音识别demo

2013年02月03日 ⁄ 综合 ⁄ 共 1713字 ⁄ 字号 评论关闭
package com.android.speech;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button start=(Button) findViewById(R.id.start);
        start.setOnClickListener(this);
    }

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.start:
			try {
                Intent intent = new Intent(
                        RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                        RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开启语音");

                startActivityForResult(intent, 10);
            } catch (Exception e) {
                Toast.makeText(MainActivity.this, e.getMessage(),
                        Toast.LENGTH_LONG).show();
            }

			
			break;

		default:
			break;
		}
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		 if (10 == requestCode && resultCode == RESULT_OK) {
	            Toast.makeText(MainActivity.this, "返回结果正常",
	                    Toast.LENGTH_LONG).show();
	            ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  //获取语言的字符
	            
	            //如果是页面的话,可以更新到页面  每个字母一列
//	            ListView lv = new ListView(null);
//	            
//	            lv.setAdapter(new ArrayAdapter<String>(this, R.layout.main, result));
	            
	            String resultString="";
	            //组成字符串
	            for (int i=0;i<result.size();i++)
	            {
	                resultString +=result.get(i);
	            }
	            Toast.makeText(MainActivity.this, resultString, Toast.LENGTH_LONG).show();
	        }
		super.onActivityResult(requestCode, resultCode, data);
	}
}

抱歉!评论已关闭.