{"id":1059,"date":"2019-07-19T16:29:38","date_gmt":"2019-07-19T14:29:38","guid":{"rendered":"https:\/\/myoceane.fr\/?p=1059"},"modified":"2020-07-07T22:24:19","modified_gmt":"2020-07-07T20:24:19","slug":"android-texttospeech","status":"publish","type":"post","link":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/","title":{"rendered":"[Android] TextToSpeech"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n\n<p style=\"text-align: justify;\">\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f<\/p>\n<p>\u9996\u5148\u6211\u5011\u5148\u5c55\u793a\u5982\u4f55\u5d4c\u5165 TextToSpeech \u5230\u4e00\u822c\u7684 Activity \u4e2d\uff1a<\/p>\n<pre class=\"lang:java\">public class TestActivity extends Activity{\n    \n    private TextToSpeech mTTs;\n    \n    @Override\n    public void onCreate(Bundle savedInstanceState){\n        super.onCreate(savedInstanceState);\n        final Locale[] locales = Locale.getAvailableLocales();\n        initTTS();\n    }\n}<\/pre>\n\n\n\n<p>\u7dca\u63a5\u8457\u6211\u5011\u5c55\u793a\u5982\u4f55\u521d\u59cb\u5316 TextToSpeech \u4e26\u4e14\u4ee5 API 23&nbsp; \u70ba\u4f8b\u5c55\u793a\u76ee\u524d\u53ef\u4ee5\u652f\u63f4 TextToSpeech \u7684\u8a9e\u8a00\u5217\u8868\uff1a<\/p>\n<pre class=\"lang:java\">private void initTTS(final Locale[] locales){\n    if( mTTs == null ){\n        mTTs = new TextToSpeech(this, new OnInitListener(){\n            @Override\n            public void onInit(int arg0){\n                if( arg0 == TextToSpeech.SUCCESS ){\n                    List&lt;Locale&gt; localeList = new ArrayList&lt;&gt;();\n                    for (Locale locale : locales) {\n                        int res = mTTS.isLanguageAvailable(locale);\n                        if (res == TextToSpeech.LANG_COUNTRY_AVAILABLE) {\n                            localeList.add(locale);\n                        }\n                    }\n                }\n            }\n        });    \n    }\n}<\/pre>\n<p>&nbsp;<\/p>\n\n\n\n<p>\u7a0b\u5f0f\u57f7\u884c\u7d50\u679c\uff1a\u6211\u5011\u53ef\u4ee5\u767c\u73fe\u76f8\u5c0d\u65bc\u88dd\u7f6e\u7684\u5728\u5730\u5316\u6a21\u7d44\uff0cTextToSpeech \u53ef\u4ee5\u4f7f\u7528\u7684\u8a9e\u8a00\u6578\u76f8\u5c0d\u8f03\u5c11\uff0c\u53ea\u6709\u5c11\u5c11\u7684 42 \u500b\uff01<br>localeList = [bn_BD, bn_IN, cs_CZ, da_DK, de_DE, el_GR, en_AU, en_GB, en_IN, en_US, en_US_POSIX, es_ES, es_US, et_EE, fi_FI, fil_PH, fr_CA, fr_FR, hi_IN, hu_HU, in_ID, it_IT, ja_JP, km_KH, ko_KR, nb_NO, ne_NP, nl_NL, pl_PL, pt_BR, pt_PT, ro_RO, ru_RU, si_LK, sk_SK, sv_SE, th_TH, tr_TR, uk_UA, vi_VN, zh_CN_#Hans, zh_TW_#Hant]<\/p>\n\n\n\n<p>locales = [af, af_NA, af_ZA, agq, agq_CM, ak, ak_GH, am, am_ET, ar, ar_001, ar_AE, ar_BH, ar_DJ, ar_DZ, ar_EG, ar_EH, ar_ER, ar_IL, ar_IQ, ar_JO, ar_KM, ar_KW, ar_LB, ar_LY, ar_MA, ar_MR, ar_OM, ar_PS, ar_QA, ar_SA, ar_SD, ar_SO, ar_SS, ar_SY, ar_TD, ar_TN, ar_YE, as, as_IN, asa, asa_TZ, az, az__#Cyrl, az_AZ_#Cyrl, az__#Latn, az_AZ_#Latn, bas, bas_CM, be, be_BY, bem, bem_ZM, bez, bez_TZ, bg, bg_BG, bm, bm__#Latn, bm_ML_#Latn, bn, bn_BD, bn_IN, bo, bo_CN, bo_IN, br, br_FR, brx, brx_IN, bs, bs__#Cyrl, bs_BA_#Cyrl, bs__#Latn, bs_BA_#Latn, ca, ca_AD, ca_ES, ca_FR, ca_IT, cgg, cgg_UG, chr, chr_US, cs, cs_CZ, cy, cy_GB, da, da_DK, da_GL, dav, dav_KE, de, de_AT, de_BE, de_CH, de_DE, de_LI, de_LU, dje, dje_NE, dsb, dsb_DE, dua, dua_CM, dyo, dyo_SN, dz, dz_BT, ebu, ebu_KE, ee, ee_GH, ee_TG, el, el_CY, el_GR, en, en_001, en_150, en_AG, en_AI, en_AS, en_AU, en_BB, en_BE, en_BM, en_BS, en_BW, en_BZ, en_CA, en_CC, en_CK, en_CM, en_CX, en_DG, en_DM, en_ER, en_FJ, en_FK, en_FM, en_GB, en_GD, en_GG, en_GH, en_GI, en_GM, en_GU, en_GY, en_HK, en_IE, en_IM, en_IN, en_IO, en_JE, en_JM, en_KE, en_KI, en_KN, en_KY, en_LC, en_LR, en_LS, en_MG, en_MH, en_MO, en_MP, en_MS, en_MT, en_MU, en_MW, en_MY, en_NA, en_NF, en_NG, en_NR, en_NU, en_NZ, en_PG, en_PH, en_PK, en_PN, en_PR, en_PW, en_RW, en_SB, en_SC, en_SD, en_SG, en_SH, en_SL, en_SS, en_SX, en_SZ, en_TC, en_TK, en_TO, en_TT, en_TV, en_TZ, en_UG, en_UM, en_US, en_US_POSIX, en_VC, en_VG, en_VI, en_VU, en_WS, en_ZA, en_ZM, en_ZW, eo, es, es_419, es_AR, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EA, es_EC, es_ES, es_GQ, es_GT, es_HN, es_IC, es_MX, es_NI, es_PA, es_PE, es_PH, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, eu, eu_ES, ewo, ewo_CM, fa, fa_AF, fa_IR, ff, ff_CM, ff_GN, ff_MR, ff_SN, fi, fi_FI, fil, fil_PH, fo, fo_FO, fr, fr_BE, fr_BF, fr_BI, fr_BJ, fr_BL, fr_CA, fr_CD, fr_CF, fr_CG, fr_CH, fr_CI, fr_CM, fr_DJ, fr_DZ, fr_FR, fr_GA, fr_GF, fr_GN, fr_GP, fr_GQ, fr_HT, fr_KM, fr_LU, fr_MA, fr_MC, fr_MF, fr_MG, fr_ML, fr_MQ, fr_MR, fr_MU, fr_NC, fr_NE, fr_PF, fr_PM, fr_RE, fr_RW, fr_SC, fr_SN, fr_SY, fr_TD, fr_TG, fr_TN, fr_VU, fr_WF, fr_YT, fur, fur_IT, fy, fy_NL, ga, ga_IE, gd, gd_GB, gl, gl_ES, gsw, gsw_CH, gsw_FR, gsw_LI, gu, gu_IN, guz, guz_KE, gv, gv_IM, ha, ha__#Latn, ha_GH_#Latn, ha_NE_#Latn, ha_NG_#Latn, haw, haw_US, iw, iw_IL, hi, hi_IN, hr, hr_BA, hr_HR, hsb, hsb_DE, hu, hu_HU, hy, hy_AM, in, in_ID, ig, ig_NG, ii, ii_CN, is, is_IS, it, it_CH, it_IT, it_SM, ja, ja_JP, jgo, jgo_CM, jmc, jmc_TZ, ka, ka_GE, kab, kab_DZ, kam, kam_KE, kde, kde_TZ, kea, kea_CV, khq, khq_ML, ki, ki_KE, kk, kk__#Cyrl, kk_KZ_#Cyrl, kkj, kkj_CM, kl, kl_GL, kln, kln_KE, km, km_KH, kn, kn_IN, ko, ko_KP, ko_KR, kok, kok_IN, ks, ks__#Arab, ks_IN_#Arab, ksb, ksb_TZ, ksf, ksf_CM, ksh, ksh_DE, kw, kw_GB, ky, ky__#Cyrl, ky_KG_#Cyrl, lag, lag_TZ, lb, lb_LU, lg, lg_UG, lkt, lkt_US, ln, ln_AO, ln_CD, ln_CF, ln_CG, lo, lo_LA, lt, lt_LT, lu, lu_CD, luo, luo_KE, luy, luy_KE, lv, lv_LV, mas, mas_KE, mas_TZ, mer, mer_KE, mfe, mfe_MU, mg, mg_MG, mgh, mgh_MZ, mgo, mgo_CM, mk, mk_MK, ml, ml_IN, mn, mn__#Cyrl, mn_MN_#Cyrl, mr, mr_IN, ms, ms__#Latn, ms_BN_#Latn, ms_MY_#Latn, ms_SG_#Latn, mt, mt_MT, mua, mua_CM, my, my_MM, naq, naq_NA, nb, nb_NO, nb_SJ, nd, nd_ZW, ne, ne_IN, ne_NP, nl, nl_AW, nl_BE, nl_BQ, nl_CW, nl_NL, nl_SR, nl_SX, nmg, nmg_CM, nn, nn_NO, nnh, nnh_CM, nus, nus_SD, nyn, nyn_UG, om, om_ET, om_KE, or, or_IN, os, os_GE, os_RU, pa, pa__#Arab, pa_PK_#Arab, pa__#Guru, pa_IN_#Guru, pl, pl_PL, ps, ps_AF, pt, pt_AO, pt_BR, pt_CV, pt_GW, pt_MO, pt_MZ, pt_PT, pt_ST, pt_TL, qu, qu_BO, qu_EC, qu_PE, rm, rm_CH, rn, rn_BI, ro, ro_MD, ro_RO, rof, rof_TZ, ru, ru_BY, ru_KG, ru_KZ, ru_MD, ru_RU, ru_UA, rw, rw_RW, rwk, rwk_TZ, sah, sah_RU, saq, saq_KE, sbp, sbp_TZ, se, se_FI, se_NO, se_SE, seh, seh_MZ, ses, ses_ML, sg, sg_CF, shi, shi__#Latn, shi_MA_#Latn, shi__#Tfng, shi_MA_#Tfng, si, si_LK, sk, sk_SK, sl, sl_SI, smn, smn_FI, sn, sn_ZW, so, so_DJ, so_ET, so_KE, so_SO, sq, sq_AL, sq_MK, sq_XK, sr, sr__#Cyrl, sr_BA_#Cyrl, sr_ME_#Cyrl, sr_RS_#Cyrl, sr_XK_#Cyrl, sr__#Latn, sr_BA_#Latn, sr_ME_#Latn, sr_RS_#Latn, sr_XK_#Latn, sv, sv_AX, sv_FI, sv_SE, sw, sw_CD, sw_KE, sw_TZ, sw_UG, ta, ta_IN, ta_LK, ta_MY, ta_SG, te, te_IN, teo, teo_KE, teo_UG, th, th_TH, ti, ti_ER, ti_ET, to, to_TO, tr, tr_CY, tr_TR, twq, twq_NE, tzm, tzm__#Latn, tzm_MA_#Latn, ug, ug__#Arab, ug_CN_#Arab, uk, uk_UA, ur, ur_IN, ur_PK, uz, uz__#Arab, uz_AF_#Arab, uz__#Cyrl, uz_UZ_#Cyrl, uz__#Latn, uz_UZ_#Latn, vai, vai__#Latn, vai_LR_#Latn, vai__#Vaii, vai_LR_#Vaii, vi, vi_VN, vun, vun_TZ, wae, wae_CH, xog, xog_UG, yav, yav_CM, ji, ji_001, yo, yo_BJ, yo_NG, zgh, zgh_MA, zh, zh__#Hans, zh_CN_#Hans, zh_HK_#Hans, zh_MO_#Hans, zh_SG_#Hans, zh__#Hant, zh_HK_#Hant, zh_MO_#Hant, zh_TW_#Hant, zu, zu_ZA, zy, zy_MM]<\/p>\n\n\n\n<p>\u7576\u9078\u5b9a\u8a9e\u8a00\u4e4b\u5f8c\uff0c\u9700\u8981\u900f\u904e\u4ee5\u4e0b\u65b9\u5f0f\u8a2d\u5b9a TextToSpeech \u7684 Engine\uff0c\u4ee5\u4e0b\u4ee5\u6307\u5b9a\u7f8e\u5f0f\u82f1\u6587\u70ba\u4f8b\uff1a<\/p>\n<pre class=\"lang:bash\">Locale l = Locale.US;\nif( tts.isLanguageAvailable( l ) == TextToSpeech.LANG_COUNTRY_AVAILABLE ){\n    tts.setLanguage( l );\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Android \u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 TextToSpeech \u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f<\/p>\n<p>\u9996\u5148\u6211\u5011\u5148\u5c55\u793a\u5982\u4f55\u5d4c\u5165 TextToSpeech \u5230\u4e00\u822c\u7684 Activity \u4e2d\uff1a<\/p>\n","protected":false},"author":1,"featured_media":1070,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Android] TextToSpeech - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane<\/title>\n<meta name=\"description\" content=\"\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Android] TextToSpeech - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"og:description\" content=\"\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f\" \/>\n<meta property=\"og:url\" content=\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\" \/>\n<meta property=\"og:site_name\" content=\"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-19T14:29:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-07T20:24:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"355\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u6ab8\u6aac\u7238\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6ab8\u6aac\u7238\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\"},\"author\":{\"name\":\"\u6ab8\u6aac\u7238\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"headline\":\"[Android] TextToSpeech\",\"datePublished\":\"2019-07-19T14:29:38+00:00\",\"dateModified\":\"2020-07-07T20:24:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\"},\"wordCount\":1329,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg\",\"articleSection\":[\"Android\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\",\"url\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\",\"name\":\"[Android] TextToSpeech - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg\",\"datePublished\":\"2019-07-19T14:29:38+00:00\",\"dateModified\":\"2020-07-07T20:24:19+00:00\",\"description\":\"\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f\",\"breadcrumb\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage\",\"url\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg\",\"contentUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg\",\"width\":700,\"height\":355},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/myoceane.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Android] TextToSpeech\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/myoceane.fr\/#website\",\"url\":\"https:\/\/myoceane.fr\/\",\"name\":\"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a\",\"description\":\"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology\",\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/myoceane.fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\",\"name\":\"\u6ab8\u6aac\u7238\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"caption\":\"\u6ab8\u6aac\u7238\"},\"logo\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Android] TextToSpeech - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","description":"\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/","og_locale":"en_US","og_type":"article","og_title":"[Android] TextToSpeech - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","og_description":"\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f","og_url":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/","og_site_name":"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","article_published_time":"2019-07-19T14:29:38+00:00","article_modified_time":"2020-07-07T20:24:19+00:00","og_image":[{"width":700,"height":355,"url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg","type":"image\/jpeg"}],"author":"\u6ab8\u6aac\u7238","twitter_card":"summary_large_image","twitter_misc":{"Written by":"\u6ab8\u6aac\u7238","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#article","isPartOf":{"@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/"},"author":{"name":"\u6ab8\u6aac\u7238","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"headline":"[Android] TextToSpeech","datePublished":"2019-07-19T14:29:38+00:00","dateModified":"2020-07-07T20:24:19+00:00","mainEntityOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/"},"wordCount":1329,"commentCount":0,"publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg","articleSection":["Android"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/","url":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/","name":"[Android] TextToSpeech - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","isPartOf":{"@id":"https:\/\/myoceane.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg","datePublished":"2019-07-19T14:29:38+00:00","dateModified":"2020-07-07T20:24:19+00:00","description":"\u5f9e API 21 (Lollipop) \u4e4b\u5f8c\u958b\u59cb\u652f\u63f4 Android Text2Speech, TextToSpeech\u529f\u80fd\uff0c\u4e5f\u5c31\u662f\u8aaa\u8f38\u5165\u4e00\u500b\u5b57\u4e32\u4e4b\u5f8c\uff0cAndroid \u88dd\u7f6e\u53ef\u4ee5\u81ea\u52d5\u8b80\u51fa\u9019\u500b\u5b57\u4e32\uff0c\u662f\u4e00\u500b\u5f88\u5f37\u7684\u7684\u529f\u80fd\uff0c\u672c\u7bc7\u8981\u4f86\u63a2\u8a0e\u5982\u4f55\u5728\u7a0b\u5f0f\u5c0e\u5165\u9019\u500b\u529f\u80fd\uff1f","breadcrumb":{"@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/myoceane.fr\/index.php\/android-texttospeech\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#primaryimage","url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg","contentUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/07\/Google_Android_5.0.1_Lollipop_update_now_available.jpg","width":700,"height":355},{"@type":"BreadcrumbList","@id":"https:\/\/myoceane.fr\/index.php\/android-texttospeech\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/myoceane.fr\/"},{"@type":"ListItem","position":2,"name":"[Android] TextToSpeech"}]},{"@type":"WebSite","@id":"https:\/\/myoceane.fr\/#website","url":"https:\/\/myoceane.fr\/","name":"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a","description":"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology","publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/myoceane.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b","name":"\u6ab8\u6aac\u7238","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","caption":"\u6ab8\u6aac\u7238"},"logo":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/"},"url":"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/"}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/1059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1059"}],"version-history":[{"count":13,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/1059\/revisions"}],"predecessor-version":[{"id":5799,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/1059\/revisions\/5799"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media\/1070"}],"wp:attachment":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}