IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android TTS_云知声离线语音合成使用 -> 正文阅读

[移动开发]Android TTS_云知声离线语音合成使用

最近项目用到离线播报 , 简单对比了几家 , 最后决定选用云知声 , 科大讯飞虽然知名度高 , 但是是收费的(还挺贵) ,果断放弃.

云知声 , 集成也算挺简单 , 不过官网的sdk可能不支持离线 , 我找了支持离线的老版本 , 缺点是播报的语速设置和音调设置无效 .

集成步骤:
1.引入so和jar;
2.使用TTSUtils .playContent

附2个文件的初步代码及jar.
TTSUtils.java

/**
 * CreateInfo:
 * wz created on 2021/8/3;
 * Description:
 */
public class TTSUtils implements TTSPlayerListener {
    public static final String appKey = "这里换成你的云知声key";
    private ITTSControl mTTSPlayer;
    private Context context;
    private SoundUtils soundUtil;//这个等语音合成时候调用
    public TTSUtils(Context context) {
        this.context = context;
        init();
    }

    /**
     * 初始化引擎
     * @author JPH
     * @date 2015-4-14 下午7:32:58
     */
    private void init() {
        soundUtil=new SoundUtils(context);
        mTTSPlayer = TTSFactory.createTTSControl(context, appKey);// 初始化语音合成对象
        mTTSPlayer.setTTSListener(this);// 设置回调监听
        mTTSPlayer.setStreamType(AudioManager.STREAM_MUSIC);//设置音频流
        mTTSPlayer.setVoiceSpeed(1.5f);//设置播报语速,播报语速,数值范围 0.1~2.5 默认为 1.0
        mTTSPlayer.setVoicePitch(0.9f);//设置播报音高,调节音高,数值范围 0.9~1.1 默认为 1.0
        mTTSPlayer.init();// 初始化合成引擎
    }
    /**
     * 停止播放
     */
    public void stop(){
        mTTSPlayer.stop();
    }

    /**
     * 播放
     */
    public void play(String content) {
        mTTSPlayer.play(content);
    }

    /**
     * 释放资源
     */
    public void release() {
        mTTSPlayer.release();
    }

    @Override
    public void onPlayEnd() {
        // 播放完成回调
        soundUtil.playSound(1);
        KLog.i("msg", "onPlayEnd");
    }

    @Override
    public void onPlayBegin() {
        // 开始播放回调
        KLog.i("msg", "onPlayBegin");
    }

    @Override
    public void onInitFinish() {
        // 初始化成功回调
        KLog.i("msg", "onInitFinish");
    }

    @Override
    public void onError(cn.yunzhisheng.tts.offline.common.USCError arg0) {
        // 语音合成错误回调
        KLog.i("msg", "onError");
    }

    @Override
    public void onCancel() {
        // 取消播放回调
        KLog.i("msg", "onCancel");
    }

    @Override
    public void onBuffer() {
        // 开始缓冲回调
        KLog.i("msg", "onBuffer");

    }

SoundUtils 主要是播放声音的,里面的musicId用于合成 , 因为项目不需要合成 , 只需要阅读文本,所以注释了.

/**
 * CreateInfo:
 * wz created on 2021/8/3;
 * Description:
 *
 */
public class SoundUtils {
    private static HashMap<Integer, Integer> musicId;
    private static SoundPool mSoundPool;
    public SoundUtils(Context context){
        mSoundPool=new SoundPool(12, 0,5);
        musicId= new HashMap<>();
//        musicId.put(1, mSoundPool.load(context, R.raw.tsc_success, 1));
//        musicId.put(2, mSoundPool.load(context, R.raw.check_failure, 1));
    }
    //播放
    public void playSound(int redId) {
        //音频资源 左声道音量 右声道音量 优先级 循环播放次数 回放速度:该值在0.5-2.0之间 1为正常速度
//        mSoundPool.play(musicId.get(redId),1,1, 0, 0, 1);
    }
    //暂停
    public void pause(int redId){
        mSoundPool.pause(redId);
    }
    //重新开始
    public void resume(int redId){
        mSoundPool.resume(redId);
    }
    //停止
    public void stop(int redId){
        mSoundPool.stop(redId);
    }
    //移除一个音频
    public void unload(int redId){
        mSoundPool.unload(redId);
    }
    //释放所有音频资源
    public void release(){
        mSoundPool.release();
    }
}

最后是离线云知声sdk,附件地址

对播报要求不高的朋友可以使用 .
已向云知声寻求最新的支持离线语音的sdk , 后续会出新版更详细的语音播放集成.

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:19:40  更:2021-08-04 11:20:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:55:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码