更新记录
0.0.1(2026-01-30) 下载此版本
初始化
平台兼容性
uni-app(4.76)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | × | × | × | - | - | 6.0 | 12 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | - | × | × |
uni-app x(4.76)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 6.0 | 12 | × | × |
ak-tts
原生语音合成插件 - 支持 Android/iOS 双平台,无需自定义基座
功能特性
- 原生语音合成(TTS)- Android/iOS 双平台支持
- 内置队列播报功能
- 语音状态监听
- 灵活的队列模式控制
快速开始
导入插件
根据目标平台导入对应的实现:
Android:
import { createTTSManager } from '@/uni_modules/ak-tts/utssdk/app-android/index.uts';
iOS:
import { createTTSManager } from '@/uni_modules/ak-tts/utssdk/app-ios/index.uts';
语音合成(TTS)
uni-app (Android)
import { createTTSManager } from '@/uni_modules/ak-tts/utssdk/app-android/index.uts';
// 创建 TTS 管理器
const ttsManager = createTTSManager();
// 初始化 TTS
ttsManager.init((success) => {
if (success) {
console.log('TTS 初始化成功');
// 监听语音状态
ttsManager.addVoiceStateListener((state, utteranceId) => {
console.log('语音状态:', state, utteranceId);
// state: 'started' | 'completed' | 'error'
});
// 开始播放
ttsManager.speak({
text: 'Hello, 这是一个语音播报测试',
queueMode: 'queue',
success: () => {
console.log('播放成功');
},
fail: (error) => {
console.error('播放失败:', error);
},
complete: () => {
console.log('播放完成');
}
});
} else {
console.error('TTS 初始化失败');
}
});
uni-app (iOS)
import { createTTSManager } from '@/uni_modules/ak-tts/utssdk/app-ios/index.uts';
// 创建 TTS 管理器
const ttsManager = createTTSManager();
// 初始化 TTS
ttsManager.init((success) => {
if (success) {
console.log('TTS 初始化成功');
// 监听语音状态
ttsManager.addVoiceStateListener((state, utteranceId) => {
console.log('语音状态:', state, utteranceId);
});
// 开始播放
ttsManager.speak({
text: 'Hello, 这是一个语音播报测试',
queueMode: 'queue',
success: () => {
console.log('播放成功');
},
fail: (error) => {
console.error('播放失败:', error);
},
complete: () => {
console.log('播放完成');
}
});
} else {
console.error('TTS 初始化失败');
}
});
uni-app x (Android)
import { createTTSManager } from '@/uni_modules/ak-tts/utssdk/app-android/index.uts';
const ttsManager = createTTSManager();
ttsManager.init((success: boolean): void => {
if (success) {
ttsManager.addVoiceStateListener((state: string, utteranceId: string): void => {
console.log('语音状态:', state, utteranceId);
});
ttsManager.speak({
text: 'Hello, 这是一个语音播报测试',
queueMode: 'queue' as const,
success: (): void => {
console.log('播放成功');
},
fail: (error: Error): void => {
console.error('播放失败:', error);
},
complete: (): void => {
console.log('播放完成');
}
});
}
});
uni-app x (iOS)
import { createTTSManager } from '@/uni_modules/ak-tts/utssdk/app-ios/index.uts';
const ttsManager = createTTSManager();
ttsManager.init((success: boolean): void => {
if (success) {
ttsManager.addVoiceStateListener((state: string, utteranceId: string): void => {
console.log('语音状态:', state, utteranceId);
});
ttsManager.speak({
text: 'Hello, 这是一个语音播报测试',
queueMode: 'queue' as const,
success: (): void => {
console.log('播放成功');
},
fail: (error: Error): void => {
console.error('播放失败:', error);
},
complete: (): void => {
console.log('播放完成');
}
});
}
});
高级用法
队列播报示例
import { createTTSManager } from '@/uni_modules/ak-tts';
const ttsManager = createTTSManager();
ttsManager.init((success) => {
if (!success) return;
// 批量播报,语音会按顺序播放
const messages = ['第一条消息', '第二条消息', '第三条消息'];
messages.forEach((text, index) => {
ttsManager.speak({
text: text,
queueMode: 'queue', // 队列模式,确保按顺序播放
complete: () => {
console.log(`第 ${index + 1} 条播放完成`);
}
});
});
});
Interrupt 播报示例
import { createTTSManager } from '@/uni_modules/ak-tts';
const ttsManager = createTTSManager();
ttsManager.init((success) => {
if (!success) return;
// 开始播报队列
ttsManager.speak({
text: '这是第一条很长的语音内容',
queueMode: 'queue'
});
// interrupt 播报(会打断当前正在播放的语音)
ttsManager.speak({
text: '这是一条紧急 interrupt 播报',
queueMode: 'interrupt' // interrupt 模式
});
});
完全截断示例
import { createTTSManager } from '@/uni_modules/ak-tts';
const ttsManager = createTTSManager();
ttsManager.init((success) => {
if (!success) return;
// 添加多条到队列
ttsManager.speak({ text: '第一条', queueMode: 'queue' });
ttsManager.speak({ text: '第二条', queueMode: 'queue' });
ttsManager.speak({ text: '第三条', queueMode: 'queue' });
// 完全截断,只播放当前
ttsManager.speak({
text: '这是一条完全截断播报,会清空所有队列中的语音',
queueMode: 'clear' // 清空队列,只播放当前
});
});
语音设置示例
import { createTTSManager } from '@/uni_modules/ak-tts';
const ttsManager = createTTSManager();
ttsManager.init((success) => {
if (!success) return;
// 获取可用语音列表
const voices = ttsManager.getVoices();
console.log('可用语音:', voices);
// 设置语速 (0.5-2.0)
ttsManager.setSpeed(1.2);
// 设置音调 (0.5-2.0)
ttsManager.setPitch(1.0);
// 如果有多个语音,可以设置特定语音
if (voices.length > 0) {
ttsManager.setVoice(voices[0]);
}
// 开始播放
ttsManager.speak({ text: '设置完成,现在开始播放' });
});
API 参考
createTTSManager()
创建语音合成管理器实例。
返回值: TTSManager - 语音合成管理器实例
TTSManager 接口
init(callback)
初始化 TTS 引擎。
参数:
callback(function): 初始化回调success(boolean): 初始化是否成功
speak(options)
播放语音。
参数:
options(object): 播放选项text(string): 播放内容queueMode(string): 队列模式'queue'(默认): 队列模式,按顺序播放'clear': 清空队列,只播放当前'interrupt': interrupt 模式,打断当前播放success(function): 播放成功回调fail(function): 播放失败回调complete(function): 播放完成回调
stop()
停止当前播放并清空队列。
pause()
暂停播放。
注意: Android 平台不支持暂停,调用将停止播放。
resume()
恢复播放。
注意: Android 平台不支持恢复,需重新开始。
setSpeed(speed)
设置语速。
参数:
speed(number): 语速,范围 0.5-2.0,默认 1.0
setPitch(pitch)
设置音调。
参数:
pitch(number): 音调,范围 0.5-2.0,默认 1.0
setVolume(volume)
设置音量。
参数:
volume(number): 音量,范围 0.0-1.0,默认 1.0
setVoice(voiceName)
设置语音。
参数:
voiceName(string): 语音名称,可通过getVoices()获取可用语音列表
getVoices()
获取可用语音列表。
返回值: string[] - 语音名称列表
addVoiceStateListener(listener)
添加语音状态监听器。
参数:
listener(function): 状态监听回调state(string): 状态类型'started': 开始播放'completed': 播放完成'error': 播放错误utteranceId(string): 语音任务 ID
removeVoiceStateListener(listener)
移除语音状态监听器。
参数:
listener(function): 要移除的监听器
shutdown()
关闭 TTS,释放资源。
平台支持
| 功能 | Android | iOS |
|---|---|---|
| 语音合成 | ✅ | ✅ |
| 队列播放 | ✅ | ✅ |
| interrupt 播放 | ✅ | ✅ |
| 完全截断 | ✅ | ✅ |
| 语音监听 | ✅ | ✅ |
| 语速设置 | ✅ | ✅ |
| 音调设置 | ✅ | ✅ |
| 音量设置 | ✅ | ✅ |
| 语音切换 | ✅ | ✅ |
错误码
| 错误码 | 说明 |
|---|---|
| 9010001 | TTS 初始化失败 |
| 9010002 | 语音播放失败 |
| 9010003 | 语音设置失败 |
版本要求
- HBuilderX 3.96+
- uni-app x 项目(uni-app vue2/vue3项目也支持,编译有报错百度即可)
注意事项
- 首次使用需初始化: 必须先调用
init()方法初始化 TTS 引擎 - 资源释放: 页面卸载时建议调用
shutdown()释放资源 - 队列模式选择:
queue: 适合顺序播放多个语音interrupt: 适合紧急插播,会打断当前clear: 适合只播放当前,清空队列

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 1
赞赏 0
下载 11196880
赞赏 1855
赞赏
京公网安备:11010802035340号