170 lines
3.5 KiB
Markdown
170 lines
3.5 KiB
Markdown
|
||
|
||
1. ✅ **禁用 UTS 插件** - 不再依赖本地编译
|
||
2. ✅ **创建录音工具** - `utils/speech-recorder.js`
|
||
3. ✅ **创建使用示例** - `语音评测-新方案使用示例.vue`
|
||
4. ✅ **服务器部署指南** - 详细说明如何部署 Vosk
|
||
|
||
---
|
||
|
||
## 🎯 新方案架构
|
||
|
||
```
|
||
前端 (uni-app)
|
||
↓ 使用 uni.getRecorderManager() 录音
|
||
↓ 上传音频到内网服务器
|
||
|
||
服务器 (192.168.1.80:30091)
|
||
↓ 接收音频文件
|
||
↓ 调用 Vosk 识别引擎
|
||
↓ 对比参考文本
|
||
↓ 计算相似度评分
|
||
↓ 返回结果
|
||
|
||
前端
|
||
↓ 显示识别文本和评分
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 立即使用
|
||
|
||
### 步骤 1:复制录音工具到你的项目
|
||
|
||
文件已创建在:
|
||
```
|
||
fronted_uniapp/utils/speech-recorder.js
|
||
```
|
||
|
||
### 步骤 2:在页面中使用
|
||
|
||
```vue
|
||
<template>
|
||
<view>
|
||
<button @touchstart="startRecord" @touchend="stopRecord">
|
||
按住录音
|
||
</button>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import speechRecorder from '@/utils/speech-recorder.js'
|
||
|
||
export default {
|
||
methods: {
|
||
startRecord() {
|
||
speechRecorder.start()
|
||
},
|
||
|
||
async stopRecord() {
|
||
const filePath = await speechRecorder.stop()
|
||
const result = await speechRecorder.uploadAndRecognize(filePath, {
|
||
referenceText: '你要评测的标准文本'
|
||
})
|
||
|
||
console.log('评分:', result.score)
|
||
console.log('识别文本:', result.recognizedText)
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
```
|
||
|
||
### 步骤 3:现在可以云打包了!
|
||
|
||
```
|
||
1. HBuilderX → 清理项目
|
||
2. 发行 → 原生APP-云打包
|
||
3. Android + DCloud证书
|
||
4. 等待 5-10 分钟
|
||
5. 下载 APK
|
||
```
|
||
|
||
**不再需要 UTS 插件,云打包应该能成功!**
|
||
|
||
---
|
||
|
||
## 🔧 服务器端部署(稍后)
|
||
|
||
1. 在服务器 (192.168.1.80) 安装 Python 和 Vosk
|
||
2. 运行识别服务
|
||
3. 集成到现有 Spring Boot 后端
|
||
|
||
**详细步骤见:** `服务器端语音识别部署指南.md`
|
||
|
||
---
|
||
|
||
## 💡 新方案优势
|
||
|
||
### vs UTS 插件
|
||
|
||
| 特性 | UTS 插件 | 新方案 |
|
||
|------|---------|--------|
|
||
| **云打包** | ❌ 编译失败 | ✅ 直接成功 |
|
||
| **内网支持** | ✅ 支持 | ✅ 支持 |
|
||
| **维护性** | ❌ 依赖复杂 | ✅ 简单 |
|
||
| **扩展性** | ❌ 受限 | ✅ 灵活 |
|
||
| **成本** | ❌ 可能需要付费 | ✅ 免费 |
|
||
|
||
### 关键优势
|
||
|
||
1. ✅ **云打包必成功** - 不依赖本地编译
|
||
2. ✅ **完全内网** - Vosk 离线识别
|
||
3. ✅ **易于维护** - 服务器端代码简单
|
||
4. ✅ **功能更强** - 可以添加更多评测维度
|
||
5. ✅ **免费开源** - 无需购买插件
|
||
|
||
---
|
||
|
||
## 📝 替换现有语音功能
|
||
|
||
找到你项目中所有使用语音插件的地方:
|
||
|
||
```javascript
|
||
// 旧代码(UTS 插件)
|
||
import speechToText from '@/uni_modules/xwq-speech-to-text'
|
||
|
||
// 新代码(录音工具)
|
||
import speechRecorder from '@/utils/speech-recorder.js'
|
||
```
|
||
|
||
替换调用方式:
|
||
|
||
```javascript
|
||
// 旧:
|
||
const result = await speechToText.evaluate(text)
|
||
|
||
// 新:
|
||
speechRecorder.start()
|
||
const filePath = await speechRecorder.stop()
|
||
const result = await speechRecorder.uploadAndRecognize(filePath, {
|
||
referenceText: text
|
||
})
|
||
```
|
||
|
||
---
|
||
|
||
## ⚡ 现在可以打包了
|
||
|
||
**不需要等服务器部署好!**
|
||
|
||
1. 前端代码已经准备好
|
||
2. 云打包会成功(不再依赖 UTS)
|
||
3. 服务器接口可以稍后慢慢部署
|
||
|
||
**先打包 APK,测试其他功能!**
|
||
|
||
**语音功能等服务器部署好后再测试!**
|
||
|
||
---
|
||
|
||
## 🎯 总结
|
||
|
||
- ✅ UTS 插件已禁用
|
||
- ✅ 新录音工具已创建
|
||
- ✅ 云打包不再卡住
|
||
- ✅ 支持内网环境
|
||
- ✅ 可以立即打包测试
|
||
|
||
**去 HBuilderX 云打包吧!** 🚀
|