Electron笔记应用集成Whisper API遇错误,求解决及替代API推荐
Electron音频转写功能错误修复及API推荐
一、当前错误解决
错误根源
核心问题是filePath参数传了undefined,导致fs.createReadStream因无效参数报错。另外那条AVCapture的警告是Mac系统Continuity Camera的兼容性提示,和转写功能无关,无需处理。
修复操作
- 检查渲染端传参
确认渲染进程调用transcribe-audio时,确实传递了有效的音频文件绝对路径。比如渲染端代码应类似:
ipcRenderer.invoke('transcribe-audio', '/Users/xxx/Documents/record.mp3')
如果是通过文件选择框获取路径,要确保拿到的路径不为空。
- 给主进程添加参数校验
在主进程的处理函数里先判断参数合法性,避免空值进入后续逻辑:
electron.ipcMain.handle("transcribe-audio", async (event, filePath) => { // 新增参数校验 if (!filePath || typeof filePath !== 'string') { throw new Error('音频文件路径无效'); } const form = new FormData(); form.append("file", fs.createReadStream(filePath)); form.append("model", "whisper-1"); const response = await axios.post("https://api.openai.com/v1/audio/transcriptions", form, { headers: { ...form.getHeaders(), Authorization: `Bearer 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` } }); return response.data.text; });
- SQLite数据检查
如果路径是从SQLite读取的,要确认数据库中存储的是完整绝对路径,没有空值或格式错误。
二、替代音频转写API推荐
- 阿里云智能语音交互:国内服务延迟低,支持多格式音频,有免费额度,适合国内用户。
- 百度语音识别:支持实时和离线转写,文档完善,集成简单,免费版能满足基础需求。
- Google Cloud Speech-to-Text:多语言识别准确率高,适合有国际化需求的应用,提供免费试用额度。
- 本地部署Whisper:用
whisper-node类库在Electron中集成本地模型,无需依赖第三方API,数据隐私性好,支持离线使用。
内容的提问来源于stack exchange,提问作者darzizalol
相关产品推荐
相关产品推荐

