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 内部已包含)
相关推荐
许杰小刀6 小时前
ctfshow-web文件包含(web78-web86)
android·前端·android studio
恋猫de小郭11 小时前
Android 上为什么主题字体对 Flutter 不生效,对 Compose 生效?Flutter 中文字体问题修复
android·前端·flutter
三少爷的鞋11 小时前
不要让调用方承担你本该承担的复杂度 —— Android Data 层设计原则
android
李李李勃谦12 小时前
Flutter 框架跨平台鸿蒙开发 - 创意灵感收集
android·flutter·harmonyos
fengci.13 小时前
ctfshow其他(web396-web407)
android
JJay.13 小时前
Android 17 大屏适配变化解
android
TE-茶叶蛋14 小时前
结合登录页-PHP基础知识点解析
android·开发语言·php
alexhilton14 小时前
Jetpack Compose元球边缘效果
android·kotlin·android jetpack