如何解决文字转语音的问题
1.网上的普遍解决方式
-
TTS+语音引擎实现离线的语音播报的功能
-
下载百度,讯飞等厂家的离线SDK(收费)
由于这个两个方式网上其他博主都讲的非常详细了我就不一一介绍了,贴一下他们的博客地址。1.https://www.jianshu.com/p/71b94e841ae2 如果你想解决的问题是用户既不想自己下载语音引擎,也不想在下载完引擎后再进行设置的操作。可以看看这个博客.
2.https://www.cnblogs.com/zhaogaojian/p/9735036.html TTS的简单的使用
3.可能会遇见的坑:speak failed: not bound to TTS engine 解决方案:https://blog.csdn.net/azhoup/article/details/90909220
2.我自己需求和解决方式
因为目标硬件不允许下载第三软件,所以第一种方案就放弃了,第二种收费就直接放弃了。在网上找了半天也没找到免费的SDK,好吧换思路,由于需要的文字转语音的文字都是固定的没有变化,所以想能不能先把这些文字转成音频,然后根据对应的内容播放相应的音频出来。
第一步:文字转音频(这类软件有很多在电脑上下载一个)
第二步:将音频放入到项目中(没有这个文件的话自己创建一个)
第三步:播放音频(到这一步就完成了。是不是很简单,我自己搞完的时候也震惊了。)
//音频播放
public void initMediaPlayer(String logicGrid){
try {
releaseMediaPlayer();
String filename="t"+logicGrid;
AssetFileDescriptor fd = getAssets().openFd(filename.trim()+".mp3");
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
private void releaseMediaPlayer() {
if (mediaPlayer != null) {
mediaPlayer.release();
mediaPlayer = null;
}
}
3.总结
有些时候不要把问题想得太复杂,会容易打击自己的自信心,特别是刚开始学习编程的时候。有时候,换一个思路,换一种方法,虽然它是一个没有什么技术含量的方法,但是能够解决问题就是个好方法。