第一步:在百度语音开发者平台(http://yuyin.baidu.com/)注册账号申请Key。
第二部:看语音合成的开发文档,然后尝试做一个小Demo,代码如下:
public class MainActivity extends Activity {
/百度key private final String BD_APIKEY = "xxxxxxxx";(在官网申请) //百度screte private final String BD_SECRET = "xxxxxxxx";(在官网申请)
//合成对象 private TTSManager ttsManager;private TextView tvAnswer;private EditText etAnswer;String result;private Handler myHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case SPEECH_START: ttsManager.startTTS((String) msg.obj); tvAnswer.setText("返回结果:" + (String) msg.obj); break;default: break; } }; };@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//初始化控件tvAnswer = (TextView) findViewById(R.id.tv_answer);etAnswer = (EditText) findViewById(R.id.et_answer);init();}
private void init() { ttsManager = new TTSManager(this, BD_APIKEY, BD_SECRET); ttsManager.setTTSListener(mTTSListener); //1,sdkinit初始化 SDKInitBuilder builder = new SDKInitBuilder(this) .setSecret(TURING_SECRET).setTuringKey(TURING_APIKEY).setUniqueId(UNIQUEID); SDKInit.init(builder, mInitListener); }public void doGet(View v){ result=etAnser.getText().toString(); }
//合成监听器 private TTSListener mTTSListener = new TTSListener() { @Override public void onSpeechStart() { } @Override public void onSpeechProgressChanged() { } @Override public void onSpeechPause() { } @Override public void onSpeechFinish() { myHandler.obtainMessage(SPEECH_START,result).sendToTarget(); } @Override public void onSpeechError(int i) } @Override public void onSpeechCancel() { } };第三步:注册权限:第四步:运行检测,结果是能够将输入的文本通过语音合成的技术以声音的形式说出来。<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_CONTACTS" />