# xwq-speech-to-text
* ### 安卓端封装VOSK模型语音识别功能
注意!试用需要先将插件导入项目并且页面加入引用代码再打自定义基座
注意!插件不包含模型文件,需要自行下载,因为模型文件比较大,加入无法云打包,可以打完基座后把模型拷贝到static目录下
#### [模型下载地址](https://alphacephei.com/vosk/models)
### 使用步骤
* 第一步:使用VOSK
```
import {downloadModel,initVoskModel,startSpeechVoice,stopSpeechVoice} from '@/uni_modules/xwq-speech-to-text';
import { CallbackType, RedultType } from '@/uni_modules/xwq-speech-to-text/utssdk/interface.uts';
```
* 第二步:初始化模型
```
/**
* 初始化模型
* 将返回的模型地址缓存起来,在第二次用到的时候直接传入初始化,避免重复解压
*/
const init = () => {
let path = '/static/vosk-model-small-cn-0.22.zip';
initVoskModel({
zipModelPath: path
}, (result : CallbackType) => {
console.log('模型地址====', result.data)
modelPath.value = result.data.modelPath;
})
};
```
* 第三步:开始语音识别
```
/**
* 开始语音识别
*/
const start = () => {
startSpeechVoice((res : RedultType) => {
console.log('识别结果===', res.data.text)
content.value += res.data.text
})
};
```
* 停止语音识别
```
/**
* 停止语音识别
*/
const stop = () => {
stopSpeechVoice()
};
```
* 如果已经解压过模型,存在解压路径时初始化
```
/**
* 存在模型解压路径(即已经初始化过一次)
*/
initVoskModel({
modelPath: modelPath.value,
zipModelPath: ''
}, (result : CallbackType) => {
console.log('模型地址====', result.data)
})
```
* 在线下载模型
```
const downModel = () => {
const url = 'https://example.com/vosk-model-small-cn-0.22.zip';//需要换成真实的模型下载地址
downloadModel(url, (res) => {
console.log(res)
if (res.code == 0 && res.filePath != '') {
initVoskModel({
zipModelPath: res.filePath
}, (result : CallbackType) => {
console.log('模型地址====', result.data)
modelPath.value = result.data.modelPath;
})
}
})
};
```
### 使用完整示例(UniappX)
```
识别结果:
```
### 使用完整示例(Uniapp)
```
识别结果:
```