更新记录
1.0.(2025-05-09)
语音识别
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.43,Android:4.4,iOS:不支持,HarmonyNext:不支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
离线语音识别插件使用说明
功能介绍
本插件提供了Android平台下的语音识别功能,支持离线模式,可以将音频文件转换为文字。主要功能包括:
- 支持Base64编码的音频数据转文字
- 支持URL音频地址转文字
- 支持检测设备是否支持离线语音识别
实现原理
本插件基于Android原生的SpeechRecognizer API实现,通过以下方式支持离线语音识别:
- 使用
RecognizerIntent.EXTRA_PREFER_OFFLINE
参数优先使用离线模式 - 检测设备是否支持离线识别功能
- 将音频文件转换为临时文件进行处理
使用方法
1. 检查离线支持
audioConverter.isSupportOfflineRecognition((result) => {
if(result.code === 0) {
if(result.supported) {
console.log('设备支持离线语音识别');
} else {
console.log('设备不支持离线语音识别');
}
} else {
console.log('检查失败: ' + result.msg);
}
});
2. Base64音频转文字
const base64Audio = '...' // Base64编码的音频数据
audioConverter.base64AudioToText(base64Audio, (result) => {
if(result.code === 0) {
console.log('识别结果: ' + result.text);
} else {
console.log('识别失败: ' + result.msg);
}
});
3. URL音频转文字
const audioUrl = 'https://example.com/audio.mp3';
audioConverter.urlAudioToText(audioUrl, (result) => {
if(result.code === 0) {
console.log('识别结果: ' + result.text);
} else {
console.log('识别失败: ' + result.msg);
}
});
注意事项
- 权限要求:应用需要获取录音权限(RECORD_AUDIO)才能使用语音识别功能
- 离线支持限制:
- 并非所有Android设备都支持离线语音识别
- 离线识别的准确率可能低于在线识别
- 离线识别支持的语言有限,主要支持系统语言
- 音频格式:建议使用WAV或MP3格式的音频文件,其他格式可能不被支持
- 文件大小:过大的音频文件可能导致处理时间延长或失败
高级用法
集成专业离线语音识别库
对于需要更高准确率和更好文件支持的场景,建议集成专业的离线语音识别库:
-
Vosk:轻量级离线语音识别库,支持多种语言
- 官网:https://alphacephei.com/vosk/
- 优点:体积小,支持多种语言,无需网络
-
Mozilla DeepSpeech:基于TensorFlow的开源语音识别引擎
- 官网:https://github.com/mozilla/DeepSpeech
- 优点:高准确率,完全开源
常见问题
-
Q: 为什么识别结果不准确?
A: 离线识别的准确率通常低于在线识别,受设备性能和语音清晰度影响较大。 -
Q: 为什么某些设备不支持离线识别?
A: 离线识别需要设备预装相应的语音识别引擎和语言包,部分设备可能未预装。 -
Q: 如何提高识别准确率?
A: 使用高质量录音,减少背景噪音,或考虑集成专业的语音识别库。