更新记录

1.0.0(2025-10-21)

新增功能

  • 新增了initTTS(初始化 TTS 引擎)、resetTTS(重置 TTS 引擎)、 isTTS(检查是否支持 TTS)、isSpeaking(检查是否正在播报)、getVoices(获取音色列表)、getLanguages(获取可用语言列表)、setVoice(设置发音人)、setLanguage(设置语言)、setVolume(设置音调)、setPitch(设置音调)、setSpeed(设置语速)、speak(语音播报)、pause(暂停播报)、resume(恢复播报)、stop(停止播报)、destroy(释放资源)的方法
  • 支持AndroidHarmonyWeb
  • 初始版本

问题修复

功能优化


平台兼容性

uni-app(4.55)

Vue2 Vue2插件版本 Vue3 Vue2插件版本 Chrome Chrome插件版本 Safari Safari插件版本 app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS 鸿蒙
1.0.0 1.0.0 33 1.0.0 7 1.0.0 1.0.0 1.0.0 5.0 1.0.0 × 5.0.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × ×

uni-app x(4.55)

Chrome Chrome插件版本 Safari Safari插件版本 Android Android插件版本 iOS 鸿蒙 鸿蒙插件版本 微信小程序
33 1.0.0 7 1.0.0 5.0 1.0.0 × 5.0.0 1.0.0 ×

其他

多语言 暗黑模式 宽屏模式
×

离线 TTS 文本转语音播报中、英文(ima-tts)

ima-tts 是一款使用系统自带的能力将文字转成语音播报的UTS插件,支持选择语言语速音调等配置,支持AndroidHarmonyWeb

需要权限

使用示例【此示例的代码只实现了语音播报暂停播报恢复播报停止播报的逻辑,更多示例请导入项目】

<template>
    <view class="container content">
        <view class="content-title">语音控制</view>
        <view class="content-message">(语音播放、暂停、继续、停止等)</view>
        <view class="content-button ima-xxx" @click="initTTSHandle">初始化</view>
        <view class="content-button ima-xxx" @click="playSpeak">播放语音</view>
        <view class="content-button ima-xxx" @click="pauseSpeak">暂停播放</view>
        <view class="content-button ima-xxx" @click="resumeSpeak">继续播放</view>
        <view class="content-button ima-xxx" @click="stopSpeak">停止播放</view>
    </view>
</template>

<script lang="ts">
import {
    IReturn,
    initTTS,
    speak,
    stop,
    pause,
    resume,
    destroy
} from '@/uni_modules/ima-tts'

export default {
    data() {
        return {}
    },
    onLoad(options) {
        this.initTTSHandle()
    },
    methods: {
        // 初始化
        initTTSHandle() {
            initTTS('zh-CN').then((res: IReturn) => {
                if (res.success) {
                    console.log(res.message)
                } else {
                    console.log(res.message)
                }
            })
        },
        // 播放
        playSpeak() {
            const text1 = '1 2 3 4 5,上山打老虎。老虎不在家,打了小松鼠。松鼠有几只,仔细数一数,1 2 3 4 5。'
            speak(text2).then((res: IReturn) => {
                if (res.success) {
                    console.log(res.message)
                } else {
                    console.log(res.message)
                }
            })
        },
        // 暂停播放
        pauseSpeak() {
            pause().then((res: IReturn) => {
                if (res.success) {
                    console.log(res.message)
                } else {
                    console.log(res.message)
                }
            })
        },
        // 继续播放
        resumeSpeak() {
            resume().then((res: IReturn) => {
                if (res.success) {
                    console.log(res.message)
                } else {
                    console.log(res.message)
                }
            })
        },
        // 停止播放
        stopSpeak() {
            stop().then((res: IReturn) => {
                if (res.success) {
                    console.log(res.message)
                } else {
                    console.log(res.message)
                }
            })
        },
    },

    onUnmounted() {
        destroy().then((res: IReturn) => {
            if (res.success) {
                console.log(res.message)
            } else {
                console.log(res.message)
            }
        })
    }
}
</script>

<style lang="scss">
.content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    &-title {
        margin-top: 10rpx;
        padding: 10rpx;
        font-size: 44rpx;
        font-weight: 800;
        color: #ff0000;
    }

    &-message {
        font-size: 28rpx;
        font-weight: 800;
        text-align: center;
        color: #ff6700;
    }

    &-button {
        height: 65rpx;
        width: 750rpx;
        padding: 20rpx;
        line-height: 65rpx;
        text-align: center;
        background: #00e0f1;
        margin-bottom: 25rpx;
    }
}
</style>

方法

方法名称 说明 方法参数 平台
initTTS 初始化 TTS 引擎 options?: ISpeakOptions AndroidHarmonyWeb
resetTTS 重置 TTS 引擎 AndroidHarmonyWeb
isTTS 检查是否支持 TTS AndroidHarmonyWeb
isSpeaking 检查是否正在播报 AndroidHarmonyWeb
getVoices 获取音色列表 voice: all(所有语音)、used(当前语言的语音)、string(具体语音名称,如: "Aaron"、"婷婷") HarmonyWeb
getLanguages 获取可用语言列表 voice: all(所有语言)、used(当前语言)、string(具体语言名称,如:"en-US"、"zh-CN") AndroidHarmonyWeb
setVoice 设置发音人 voice : 可用音色列表参数(数据来源getVoices中返回的) HarmonyWeb
setLanguage 设置语言 lang : 可用语言列表参数(数据来源getLanguages中返回的) AndroidHarmonyWeb
setVolume 设置音量 volume: 音调值(范围值: 0.1~10,不同平台不一致) HarmonyWeb
setPitch 设置音调 pitch: 音调值(范围值: 0.1~10,不同平台不一致) AndroidHarmonyWeb
setSpeed 设置语速 speed: 语速值(范围值: 0.1~10,不同平台不一致) AndroidHarmonyWeb
speak 语音播报 text: 播报文本 AndroidHarmonyWeb
pause 暂停播报 AndroidHarmonyWeb
resume 恢复播报 AndroidHarmonyWeb
stop 停止播报 AndroidHarmonyWeb
destroy 释放资源 AndroidHarmonyWeb

ISpeakOptions 参数类型

参数名 说明 类型 平台
lang 语种: "en-US"、"zh-CN" string AndroidHarmonyWeb
speed 语速: 0.0-1.0 number AndroidHarmonyWeb
pitch 音调: 0.5-2.0 number AndroidHarmonyWeb
volume 音量: 0.0-1.0 number HarmonyWeb
voice 音色: Harmony(number)\Web(string) string \ number HarmonyWeb

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: