更新记录
1.0.0(2025-12-26)
讯飞语音SDK uni-app原生插件 集成科大讯飞语音能力,支持Android/iOS双平台。功能包括:
平台兼容性
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | √ | √ |
xf-speech 讯飞语音 UTS 插件
集成科大讯飞语音能力的 UTS 插件,支持 Android/iOS 双平台。
功能特性
| 功能 | 说明 | 支持平台 |
|---|---|---|
| 🎤 语音听写 (IAT) | 实时将语音转换为文字,支持多语种 | Android / iOS |
| 🔊 语音合成 (TTS) | 将文字转换为自然语音播放 | Android / iOS |
| 📝 语音评测 (ISE) | 语音发音评分,支持中英文,支持录音回放 | Android / iOS |
快速开始
1. 引入插件
import {
initialize,
destroy,
startIat,
stopIat,
cancelIat,
onIatResult,
onIatError,
onIatVolume,
startTts,
pauseTts,
resumeTts,
stopTts,
onTtsProgress,
onTtsComplete,
onTtsError,
startIse,
stopIse,
cancelIse,
onIseResult,
onIseError,
onIseVolume
} from '@/uni_modules/xf-speech'
2. 初始化 SDK
initialize('你的AppID', (res) => {
if (res.success) {
console.log('初始化成功');
} else {
console.log('初始化失败:', res.errorDescription);
}
});
⚠️ AppID 需要在 讯飞开放平台 注册并创建应用获取
📖 详细开发文档请参考:讯飞开放平台文档中心
3. 销毁 SDK
destroy((res) => {
console.log('SDK已销毁');
});
API 文档
语音听写 (IAT)
开始听写
startIat({
language: 'zh_cn', // 语言:zh_cn(中文), en_us(英文), ja_jp(日语)等
accent: 'mandarin', // 方言:mandarin(普通话)
vad_bos: '4000', // 前端点超时(ms)
vad_eos: '1000', // 后端点超时(ms)
ptt: '1' // 标点符号:0(无), 1(有)
}, (res) => {
if (res.success) {
console.log('开始听写');
}
});
停止听写
stopIat((res) => {});
取消听写
cancelIat((res) => {});
监听结果
// 识别结果回调
onIatResult((res) => {
console.log('识别结果:', res.result);
console.log('是否最终结果:', res.isLast);
});
// 错误回调
onIatError((err) => {
console.log('错误:', err.errorCode, err.errorDescription);
});
// 音量回调
onIatVolume((res) => {
console.log('音量:', res.volume);
});
语音合成 (TTS)
开始合成
startTts('要合成的文本内容', {
voicer: 'xiaoyan', // 发音人
speed: '50', // 语速 0-100
pitch: '50', // 音调 0-100
volume: '50' // 音量 0-100
}, (res) => {
if (res.success) {
console.log('开始合成');
}
});
发音人列表
| 发音人 | 名称 | 特点 |
|---|---|---|
| xiaoyan | 小燕 | 中文女声 |
| aisjiuxu | 许久 | 中文男声 |
| aisxping | 小萍 | 中文女声 |
| aisjinger | 小婧 | 中文女声 |
| aisbabyxu | 许小宝 | 童声 |
控制播放
// 暂停
pauseTts((res) => {});
// 继续
resumeTts((res) => {});
// 停止
stopTts((res) => {});
监听事件
// 播放进度
onTtsProgress((res) => {
console.log('进度:', res.progress);
});
// 播放完成
onTtsComplete((res) => {
console.log('播放完成');
});
// 错误回调
onTtsError((err) => {
console.log('错误:', err.errorDescription);
});
语音评测 (ISE)
开始评测
startIse('要评测的文本', {
language: 'zh_cn', // 语言:zh_cn(中文), en_us(英文)
category: 'read_sentence', // 评测类型
result_level: 'complete', // 结果级别
vad_bos: '5000', // 前端点超时
vad_eos: '1800' // 后端点超时
}, (res) => {
if (res.success) {
console.log('开始评测');
}
});
评测类型
| 类型 | 说明 |
|---|---|
| read_sentence | 句子评测 |
| read_word | 词语评测 |
| read_chapter | 篇章评测 |
| read_syllable | 音节评测 |
停止/取消评测
stopIse((res) => {});
cancelIse((res) => {});
监听结果
// 评测结果(XML格式)
onIseResult((res) => {
console.log('评测结果:', res.result);
console.log('是否最终结果:', res.isLast);
if (res.isLast && res.audioPath) {
console.log('录音文件路径:', res.audioPath);
// 可使用 uni.createInnerAudioContext() 播放录音
}
});
// 错误回调
onIseError((err) => {
console.log('错误:', err.errorDescription);
});
// 音量回调
onIseVolume((res) => {
console.log('音量:', res.volume);
});
播放录音回放
if (res.audioPath) {
const audioContext = uni.createInnerAudioContext();
audioContext.src = res.audioPath;
audioContext.play();
}
类型定义
// 通用回调结果
type XFResult = {
success: boolean
errorCode?: number
errorDescription?: string
}
// 语音听写参数
type IatOptions = {
language?: string // 语言
accent?: string // 方言
vad_bos?: string // 前端点超时(ms)
vad_eos?: string // 后端点超时(ms)
ptt?: string // 标点符号
}
// 语音合成参数
type TtsOptions = {
voicer?: string // 发音人
speed?: string // 语速
pitch?: string // 音调
volume?: string // 音量
}
// 语音评测参数
type IseOptions = {
language?: string // 语言
category?: string // 评测类型
result_level?: string // 结果级别
vad_bos?: string // 前端点超时
vad_eos?: string // 后端点超时
}
权限配置
Android
插件已自动配置以下权限:
android.permission.RECORD_AUDIO- 录音权限android.permission.INTERNET- 网络权限android.permission.ACCESS_NETWORK_STATE- 网络状态权限android.permission.ACCESS_WIFI_STATE- WiFi状态权限android.permission.READ_EXTERNAL_STORAGE- 存储读取权限android.permission.WRITE_EXTERNAL_STORAGE- 存储写入权限
iOS
在 manifest.json 中配置麦克风权限描述:
{
"app-plus": {
"distribute": {
"ios": {
"privacyDescription": {
"NSMicrophoneUsageDescription": "需要使用麦克风进行语音识别和评测"
}
}
}
}
}
错误码说明
| 错误码 | 说明 | 解决方案 |
|---|---|---|
| 10102 | AppID 无效 | 检查 AppID 是否正确 |
| 10201 | 网络连接异常 | 检查网络连接和权限配置 |
| 10301 | 录音初始化失败 | 检查录音权限 |
| 11201 | 无有效结果 | 请清晰发音重试 |
| 11301 | 评测文本为空 | 请输入评测文本 |
📖 完整错误码列表请参考:讯飞开放平台错误码查询
注意事项
- AppID 绑定:请确保 AppID 与应用包名/Bundle ID 匹配
- 录音权限:首次使用需要用户授权录音权限
- 网络要求:在线识别需要网络连接
- 平台差异:部分高级功能可能存在平台差异
技术支持
如有问题,请提交 Issue 或联系开发者。
License
MIT License

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 1
赞赏 0
下载 12644508
赞赏 1831
赞赏
京公网安备:11010802035340号