Android学习之TTS踩坑笔记

Android学习之TTS踩坑笔记,第1张

概述•前言最近在做一款英文词典的APP,做到语音模块的时候,我裂开,从网上搜索了各种博客,各种瞎捣鼓,模拟器就是不发音;辗转反侧数日,终于让我找到解决之法,接下来就本次测试列出一些需要(必须)解决的问题:模拟器如何联网模拟器如何安装TTS引擎?模拟器如何安装已下载好的apk文
•前言

  最近在做一款英文词典的 APP,做到语音模块的时候,我裂开,从网上搜索了各种博客,各种瞎捣鼓,模拟器就是不发音;

  辗转反侧数日,终于让我找到解决之法,接下来就本次测试列出一些需要(必须)解决的问题:

模拟器如何联网模拟器如何安装 TTS 引擎?模拟器如何安装已下载好的 apk 文件?

  接下来就这些问题做出一一解答;

•准备工作

  我在 Genymotion 上下载了两个模拟器,分别为 AndroID 7.0 , AndroID 8.0 , AndroID 9.0;

  准备好如下文件,我放在了网盘中,需要的话,自行下载提取【网盘链接,提取码:t2li】;

•模拟器如何联网?

  打开【Oracle VM VirtualBox】,选中 AndroID 7.0 设备,点击【设置】;

  来到如下界面,选中【网络】->【网卡 1】,点击【高级】,将【混杂模式】更改为全部允许;

  接着打开【网卡 2】,将连接方式更改为【NAT】;

  重启模拟器,打开浏览器输入 www.baIDu.com 来检查网络连接情况;

  虽然 WIFI 上有个的感叹号,但丝毫不影响模拟器联网;

  AndroID 8.0 , AndroID 9.0 联网同上;

  问题一解决 √;

•模拟器如何安装 apk?

  将下载好的【qq.apk】以拖拽的方式安装到 AndroID 7.0 上;

  你会发现,他会给你报错;

  意思是说 Genymotion 是基于 X86 的,不支持 ARM 架构,所以基于 ARM 架构 的应用就无法安装。

解决方案

  将【ARM_Translation_low_version.zip】拖拽到 AndroID 7.0 模拟器中;

  如果出现如下界面:

  恭喜你,安装成功,接下需要你重启该模拟器;

  如果没有出现该界面,那么,就需要检查一下文件路径以及文件名:

文件路径不能包含中文,参考一下我的路径 E:\TTS\ARM_Translation_low_version.zip文件名不能包含空格,比如把【ARM_Translation_low_version.zip】改成了【ARM_Translation low_version.zip】,这些 *** 作都会导致拖放失败

  此时,再次将【qq.apk】拖拽到 AndroID 7.0 上,拖放前一定要记得重启模拟器;

  AndroID 8.0 , AndroID 9.0 模拟器安装 apk 方式同上,只需要将【ARM_Translation】更改为对应的【ARM】即可;

  问题解决√;

•模拟器如何安装 TTS 引擎?

  解决了第二个问题后,这个岂不变得 so easy~

  将【GoogleTTS.apk】拖放到模拟器上,然后打开【设置】->【无障碍】->【文字转语音(TTS)输出】,

  并将【首选引擎】更改为 Google 文字转语音引擎;

  接下来就是检验阶段,新建一个 TestTTS 项目,添加如下代码;

activity_main.xml
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical" >    <EditText        androID:ID="@+ID/main_text"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:hint="input something"/>    <button        androID:ID="@+ID/main_btn_speech"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:text="发音" /></linearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {    private TextToSpeech textToSpeech;    private EditText editText;    private button mBtnSpeech;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        editText = findVIEwByID(R.ID.main_text);        mBtnSpeech = findVIEwByID(R.ID.main_btn_speech);        textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {            public voID onInit(int status) {                if (status == TextToSpeech.SUCCESS) {                    //设置发音的语言                    int result = textToSpeech.setLanguage(Locale.ENGliSH);                    if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {                        Toast.makeText(MainActivity.this, "发音失败", Toast.LENGTH_LONG).show();                    } else {                        Toast.makeText(MainActivity.this, "发音成功", Toast.LENGTH_LONG).show();                    }                }            }        });        mBtnSpeech.setonClickListener(new VIEw.OnClickListener() {            public voID onClick(VIEw vIEw) {                textToSpeech.speak(editText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);            }        });    }}

  编译运行,自己本地测试一下,我这是可行的。

  由于我找的这个【GoogleTTS.apk】支持的 AndroID 版本需要 ≥ 8.0,所以,要测试的话,还是要在 AndroID 8.0 或 AndroID 9.0 上测试。

•写在最后

  兜兜转转捣鼓了好几天,还好成功了,感谢大佬们写的博客,助我一臂之力;

【Android模拟器Genymotion安装apk】【win10安装 Genymotion ARM Translation教程(避免掉入大坑)】【TTS(Text To Speech)文字转语音简单实现】【Android TTS系列一——如何让app具备tts能力】

总结

以上是内存溢出为你收集整理的Android学习之TTS踩坑笔记全部内容,希望文章能够帮你解决Android学习之TTS踩坑笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1007131.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存