如何从本地项目文件加载Teachable Machine音频模型
Teachable Machine 音频离线模型加载方案
speech-commands库的create()方法本身就支持本地路径加载,不需要额外找独立的load()方法,代码跑不通通常是两个核心问题:参数传位错误、本地运行环境不符合要求。
修正后的实现代码
async function createModel() { // 参数顺序不要错: // 1. 音频特征提取类型,固定用BROWSER_FFT即可 // 2. 基础模型配置,传undefined代表不使用官方预训练的基础词库 // 3. 自定义model.json的相对路径 // 4. 自定义metadata.json的相对路径 const recognizer = await speechCommands.create( 'BROWSER_FFT', undefined, './model.json', './metadata.json' ); // 等待模型权重完全加载完成再返回 await recognizer.ensureModelLoaded(); return recognizer; }
必须满足的运行条件
- 文件要齐全:从Teachable Machine导出音频模型包时,除了
model.json和metadata.json,必须把包内的weights.bin权重文件一起解压到和代码引用路径一致的目录下,缺任何一个文件都会加载失败。 - 禁止用file://协议直接打开本地HTML文件:浏览器跨域安全策略会拦截本地文件读取,必须启动本地静态文件服务访问页面,比如用VS Code的Live Server插件,或者在项目目录执行
npx serve .启动服务后,通过localhost地址访问。
加载成功验证
模型初始化完成后,调用recognizer.wordLabels(),如果返回的是你自己训练的自定义类别标签,就代表离线模型加载正常,可以直接开始识别调用。
内容的提问来源于stack exchange,提问作者DrWalrus
相关产品推荐
相关产品推荐

