Android 13 AOSP 内置 NekoTTS 中文免费商用 TTS 完整流程

一、前置说明

  • NekoTTS:MIT 协议,免费可商用,离线中文 TTS,标准 Android TTS 引擎接口
  • 环境:Android 13 AOSP 源码环境,Linux 编译环境
  • 目标:将 NekoTTS 预置为系统应用,并设为系统默认 TTS 引擎

二、下载 NekoTTS APK

  1. 进入 NekoTTS GitHub 发布页https://github.com/siva-sub/NekoTTS/releases
  2. 下载最新稳定版 APK(文件名类似 app-universal-release.apk
  3. 重命名为 NekoTTS.apk

三、在 AOSP 中创建应用目录

  1. 进入 AOSP 预置应用目录,执行命令 bash

    运行

    复制代码
    cd 你的AOSP根目录/vendor/你的产品目录/apps/
    mkdir -p NekoTTS
    cd NekoTTS
  2. 将下载好的 NekoTTS.apk 放入此目录

四、创建 Android.bp 编译脚本

NekoTTS 目录下新建 Android.bp,内容如下:

json

复制代码
android_app_import {
    name: "NekoTTS",
    apk: "NekoTTS.apk",
    // 预置到 product 分区,商用合规
    product_specific: true,
    // 系统应用优先级
    privileged: true,
    // 兼容系统 API
    platform_apis: true,
    // 启用 dex 优化
    dex_preopt: {
        enabled: true,
    },
}

五、修改 device.mk 加入编译

打开你的设备配置文件device/厂商名/产品名/device.mk添加以下内容:

makefile

复制代码
# 编译打包 NekoTTS 到系统
PRODUCT_PACKAGES += NekoTTS

# 系统默认 TTS 引擎包名
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.tts.default.engine=com.sivasubramanian.neko.tts

# 确保系统 TTS 服务启用
PRODUCT_PACKAGES += TtsService

六、配置系统默认 TTS 引擎(永久生效)

  1. 打开文件 plaintext

    复制代码
    frameworks/base/packages/SettingsProvider/res/values/defaults.xml
  2. 添加 / 修改以下配置 xml

    复制代码
    <!-- 默认 TTS 引擎 -->
    <string name="def_tts_engine" translatable="false">com.sivasubramanian.neko.tts</string>
    <!-- 默认语言 zh-CN -->
    <string name="def_tts_default_lang" translatable="false">zh-CN</string>

七、添加默认权限(免用户授权)

新建 / 打开文件:vendor/你的产品目录/etc/default-permissions/neko_tts_permissions.xml内容:

xml

复制代码
<?xml version="1.0" encoding="utf-8"?>
<permissions>
    <privapp-permissions package="com.sivasubramanian.neko.tts">
        <permission name="android.permission.INTERNET"/>
        <permission name="android.permission.READ_EXTERNAL_STORAGE"/>
        <permission name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    </privapp-permissions>

    <default-access for-package="com.sivasubramanian.neko.tts"
        permission="android.permission.RECORD_AUDIO"
        granted="true"/>
</permissions>

并在 device.mk 中加入:

makefile

复制代码
PRODUCT_COPY_FILES += \
    vendor/你的产品目录/etc/default-permissions/neko_tts_permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/neko_tts_permissions.xml

八、编译系统镜像

执行编译命令:

bash

运行

复制代码
source build/envsetup.sh
lunch 你的产品型号
make installclean
make -j$(nproc)

九、刷机验证

  1. 刷入编译好的 system + product 镜像
  2. 进入系统查看设置:设置 → 无障碍 → 文字转语音输出 → 默认引擎为 NekoTTS
  3. 中文离线合成直接可用,无需下载语音包

十、测试 TTS 是否正常

使用简单 APP 代码测试:

java

运行

复制代码
TextToSpeech tts = new TextToSpeech(this, status -> {
    if (status == TextToSpeech.SUCCESS) {
        // 设置中文
        tts.setLanguage(Locale.SIMPLIFIED_CHINESE);
        // 播放语音
        tts.speak("你好,这是 Android 13 内置的 NekoTTS 中文语音", TextToSpeech.QUEUE_FLUSH, null);
    }
});

十一、商用合规说明

  • NekoTTS 采用 MIT 开源协议
  • 可免费商用、闭源分发、无专利风险
  • 无需开源固件源码,无 GPL 传染风险
  • 内置时保留原作者声明即可(APK 内部已包含)
相关推荐
GitLqr6 小时前
Flutter 3.44 插件内置 Kotlin (KGP) 双向兼容适配指南
android·flutter·dart
随遇丿而安10 小时前
第11周:Activity 跳转与传值 + 跳转优化
android
私人珍藏库11 小时前
[Android] BBLL 开源第三方B哩电视TV端
android·app·生活·工具·多功能
杉氧13 小时前
跨平台资源管理:一套代码如何搞定 Android、iOS 和 Web 的图片与多语言?
android·架构·android jetpack
安卓修改大师15 小时前
安卓修改大师实战:从反编译到定制的完整APK修改指南
android
柚鸥ASO优化16 小时前
安卓APP推广的“降本增效”密码:守好商店内,打好商店外
android·aso优化
我是一颗柠檬16 小时前
【Java项目技术亮点】EXPLAIN深度分析与慢查询治理
android·java·开发语言
Android-Flutter16 小时前
android compose shadow 阴影 使用
android·kotlin·compose
帅次17 小时前
Android 高级工程师面试:Java 多线程与并发 近1年高频追问 22 题
android·java·面试
2501_9437823517 小时前
【共创季稿事节】摩斯电码转换器:编码表与双向转换的实现
android·华为·鸿蒙·鸿蒙系统