It quickly realizes TTS based on iFLYTEK offline voice SDK package, and supports setting of male and female voices. Since iFLYTEK offline voice experience version has a validity period problem, the SDK version has been reduced to be solved. It is still available for normal use.
The higher version of Android will report 21002 error. Currently, the test below Android 6.0 is used normally. To solve this problem, you need to upgrade the SDK version;
You can run the demo first, and if it does not crash, it should work normally.
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
} //仅支持armeabi-v7a。
dependencies {
implementation ' com.github.shenbengit:TTSTool:Tag '
}AndroidManifest.xml has been added, dangerous permissions may need to be handled by yourself.
<!--连接网络权限,用于执行云端语音能力 -->
< uses-permission android : name = " android.permission.INTERNET " />
<!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
< uses-permission android : name = " android.permission.RECORD_AUDIO " />
<!--读取网络信息状态 -->
< uses-permission android : name = " android.permission.ACCESS_NETWORK_STATE " />
<!--获取当前wifi状态 -->
< uses-permission android : name = " android.permission.ACCESS_WIFI_STATE " />
<!--允许程序改变网络连接状态 -->
< uses-permission android : name = " android.permission.CHANGE_NETWORK_STATE " />
<!--读取手机信息权限 -->
< uses-permission android : name = " android.permission.READ_PHONE_STATE " />
<!--读取联系人权限,上传联系人需要用到此权限 -->
< uses-permission android : name = " android.permission.READ_CONTACTS " />
<!--外存储写权限,构建语法需要用到此权限 -->
< uses-permission android : name = " android.permission.WRITE_EXTERNAL_STORAGE " />
<!--外存储读权限,构建语法需要用到此权限 -->
< uses-permission android : name = " android.permission.READ_EXTERNAL_STORAGE " />
<!--配置权限,用来记录应用配置信息 -->
< uses-permission android : name = " android.permission.WRITE_SETTINGS " />
<!--手机定位信息,用来为语义等功能提供定位,提供更精准的服务-->
<!--定位信息是敏感信息,可通过Setting.setLocationEnable(false)关闭定位请求 -->
< uses-permission android : name = " android.permission.ACCESS_FINE_LOCATION " />
<!--如需使用人脸识别,还要添加:摄相头权限,拍照需要用到 -->
< uses-permission android : name = " android.permission.CAMERA " /> /* *
* 必须在主进程初始化
* @param context
* @param isFemaleVoice 是否是女声,true:女声,false:男声
* @param listener 初始化结果回调,成功:[ErrorCode.SUCCESS]
*/
TTSManager .getInstance(). init (context : Context , isFemaleVoice : Boolean = true , listener : InitListener ? = null )
/* *
* 开始合成
*/
TTSManager .getInstance().startSpeaking(text : String )
/* *
* 停止合成
*/
TTSManager .getInstance().stopSpeaking()
/* *
* 是否正在合成
*/
TTSManager .getInstance().isSpeaking()
/* *
* 销毁
*/
TTSManager .getInstance().destroy()
/* *
* 监听回调
*/
TTSManager .getInstance().setSpeechStatusListener(listener : SpeechStatusListener ? )
If you use Kotlin, you can also call it quickly
/* *
* 必须在主进程初始化
* @param context
* @param isFemaleVoice 是否是女声,true:女声,false:男声
*/
initTTS(context : Context , isFemaleVoice : Boolean = true , listener : InitListener ? = null )
/* *
* 开始合成
*/
startSpeaking(text : String )
/* *
* 停止合成
*/
stopSpeaking()
/* *
* 是否正在合成
*/
isSpeaking()
/* *
* 销毁
*/
destroyTTS()
/* *
* 监听回调
*/
setSpeechStatusListener(listener : TTSManager . SpeechStatusListener ? )
Obfuscation rules have been added, generally do not need to be added by yourself
-keep class com.iflytek.**{*;}
-keepattributes Signature