自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android TTS技術(shù)

移動(dòng)開(kāi)發(fā) Android
TTS技術(shù)就是通過(guò)文字轉(zhuǎn)化與語(yǔ)音的能力,而Android手機(jī)平臺(tái),也綁定了英文語(yǔ)音引擎,對(duì)英文語(yǔ)音提拱了內(nèi)置的支持。通過(guò)輸入一段英文,就可以將其語(yǔ)音的形式播放出來(lái)。這也是該平臺(tái)下的一個(gè)創(chuàng)意設(shè)計(jì)。

Android TTS技術(shù),也就是Text-to-speech技術(shù)。TTS技術(shù)對(duì)文本文件進(jìn)行實(shí)時(shí)轉(zhuǎn)換,轉(zhuǎn)換時(shí)間之短可以秒計(jì)算。在其特有智能語(yǔ)音控制器作用下,文本輸出的語(yǔ)音音律流暢,使得聽(tīng)者在聽(tīng)取信息時(shí)感覺(jué)自然,毫無(wú)機(jī)器語(yǔ)音輸出的冷漠與生澀感。TTS語(yǔ)音合成技術(shù)即將覆蓋國(guó)標(biāo)一、二級(jí)漢字,具有英文接口,自動(dòng)識(shí)別中、英文,支持中英文混讀。所有聲音采用真人普通話(huà)為標(biāo)準(zhǔn)發(fā)音,實(shí)現(xiàn)了120-150個(gè)漢字/秒的快速語(yǔ)音合成,朗讀速度達(dá)3-4個(gè)漢字/秒,使用戶(hù)可以聽(tīng)到清晰悅耳的音質(zhì)和連貫流暢的語(yǔ)調(diào)。

下面我們來(lái)看看這是如何實(shí)現(xiàn)的:

***步:檢查T(mén)TS數(shù)據(jù)是否可用:

java代碼:

  1. //檢查T(mén)TS數(shù)據(jù)是否已經(jīng)安裝并且可用   
  2. Intent checkIntent = new Intent();   
  3. checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);   
  4. startActivityForResult(checkIntent, REQ_TTS_STATUS_CHECK);   
  5. protected void onActivityResult(int requestCode, int resultCode, Intent data) {   
  6. if(requestCode == REQ_TTS_STATUS_CHECK)   
  7. {   
  8. switch (resultCode) {   
  9. case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:   
  10. //這個(gè)返回結(jié)果表明TTS Engine可以用   
  11. {   
  12. mTts = new TextToSpeech(this, this);   
  13. Log.v(TAG, "TTS Engine is installed!");   
  14. }   
  15. break;   
  16. case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:   
  17. //需要的語(yǔ)音數(shù)據(jù)已損壞   
  18. case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:   
  19. //缺少需要語(yǔ)言的語(yǔ)音數(shù)據(jù)   
  20. case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:   
  21. //缺少需要語(yǔ)言的發(fā)音數(shù)據(jù)   
  22. {   
  23. //這三種情況都表明數(shù)據(jù)有錯(cuò),重新下載安裝需要的數(shù)據(jù)   
  24. Log.v(TAG, "Need language stuff:"+resultCode);   
  25. Intent dataIntent = new Intent();   
  26. dataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);   
  27. startActivity(dataIntent);   
  28. }   
  29. break;   
  30. case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:   
  31. //檢查失敗   
  32. default:   
  33. Log.v(TAG, "Got a failure. TTS apparently not available");   
  34. break;   
  35. }   
  36. }   
  37. else   
  38. {   
  39. //其他Intent返回的結(jié)果   
  40. }   
  41. }  

下一步,初始化TTS。

java代碼:

  1. //實(shí)現(xiàn)TTS初始化接口   
  2. @Override   
  3. public void onInit(int status) {   
  4. // TODO Auto-generated method stub   
  5. //TTS Engine初始化完成   
  6. if(status == TextToSpeech.SUCCESS)   
  7. {   
  8. int result = mTts.setLanguage(Locale.US);   
  9. //設(shè)置發(fā)音語(yǔ)言   
  10. if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)   
  11. //判斷語(yǔ)言是否可用   
  12. {   
  13. Log.v(TAG, "Language is not available");   
  14. speakBtn.setEnabled(false);   
  15. }   
  16. else   
  17. {   
  18. mTts.speak("This is an example of speech synthesis.", TextToSpeech.QUEUE_ADD, null);   
  19. speakBtn.setEnabled(true);   
  20. }   
  21. }   
  22. }  

接下來(lái),設(shè)置發(fā)音語(yǔ)言

java代碼:

  1. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {   
  2. // TODO Auto-generated method stub   
  3. int pos = langSelect.getSelectedItemPosition();   
  4. int result = -1;   
  5. switch (pos) {   
  6. case 0:   
  7. {   
  8. inputText.setText("I love you");   
  9. result = mTts.setLanguage(Locale.US);   
  10. }   
  11. break;   
  12. case 1:   
  13. {   
  14. inputText.setText("Je t'aime");   
  15. result = mTts.setLanguage(Locale.FRENCH);   
  16. }   
  17. break;   
  18. case 2:   
  19. {   
  20. inputText.setText("Ich liebe dich");   
  21. result = mTts.setLanguage(Locale.GERMAN);   
  22. }   
  23. break;   
  24. case 3:   
  25. {   
  26. inputText.setText("Ti amo");   
  27. result = mTts.setLanguage(Locale.ITALIAN);   
  28. }   
  29. break;   
  30. case 4:   
  31. {   
  32. inputText.setText("Te quiero");   
  33. result = mTts.setLanguage(new Locale("spa", "ESP"));   
  34. }   
  35. break;   
  36. default:   
  37. break;   
  38. }   
  39. //設(shè)置發(fā)音語(yǔ)言   
  40. if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)   
  41. //判斷語(yǔ)言是否可用   
  42. {   
  43. Log.v(TAG, "Language is not available");   
  44. speakBtn.setEnabled(false);   
  45. }   
  46. else   
  47. {   
  48. speakBtn.setEnabled(true);   
  49. }   

***點(diǎn)擊Button按鈕發(fā)音:

java代碼:

  1. public void onClick(View v) {   
  2. // TODO Auto-generated method stub   
  3. mTts.speak(inputText.getText().toString(), TextToSpeech.QUEUE_ADD, null);   
  4. //朗讀輸入框里的內(nèi)容   
  5. }  

【編輯推薦】

Android環(huán)境變量的設(shè)置

Android輕松實(shí)現(xiàn)語(yǔ)音識(shí)別

Android開(kāi)發(fā)中插入新的Activity

Android開(kāi)發(fā)之旅:Android架構(gòu)

在Android應(yīng)用程序中使用Internet數(shù)據(jù)

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2016-06-23 11:48:00

Android開(kāi)發(fā)

2022-10-26 18:31:15

火山引擎

2024-01-03 09:52:54

開(kāi)源TTS引擎TTS

2019-08-07 18:45:40

語(yǔ)音助手TTS前端

2025-02-25 10:34:10

2024-07-30 11:21:17

TTSAIAgent

2011-03-01 15:02:54

Qt

2017-03-06 14:44:49

Androidhook技術(shù)

2023-07-06 08:41:20

TTS?Mac?系統(tǒng)

2017-02-28 08:48:11

科技早新聞

2018-01-09 15:57:18

熱修復(fù)開(kāi)發(fā)編譯

2014-04-01 13:29:44

Android高級(jí)模糊技術(shù)

2017-12-28 14:54:04

Android代碼埋點(diǎn)全埋點(diǎn)

2022-03-04 15:51:43

TTS功能Hi3861科大訊飛

2013-06-14 15:43:46

Android開(kāi)發(fā)移動(dòng)開(kāi)發(fā)數(shù)據(jù)存儲(chǔ)

2018-02-07 15:25:41

2011-05-31 16:26:12

Android

2009-05-08 08:38:25

AndroidGoogle移動(dòng)OS

2017-02-15 12:59:23

Android渠道打包技術(shù)小結(jié)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)