tensorflow.js 练习语音识别控制轮播图(十二)

示例

const $ = require('jquery');
const tf = require('@tensorflow/tfjs');
const tfvis = require('@tensorflow/tfjs-vis');
const speechCommands = require('@tensorflow-models/speech-commands');

const MODEL_PATH = 'http://127.0.0.1:8080';

let transferRecognizer;
let curIndex = 0;

$(async () => {
  //创建语音识别器
  const recognizer = speechCommands.create(
    'BROWSER_FFT',
    null,
    MODEL_PATH + '/speech/model.json',
    MODEL_PATH + '/speech/metadata.json',
  );

  //确定模型已加载
  await recognizer.ensureModelLoaded();

  //创建迁移学习器,起名为“轮播图”用于区分
  transferRecognizer = recognizer.createTransfer('轮播图');

  const res = await fetch(MODEL_PATH + '/slider/data.bin');
  const arrayBuffer = await res.arrayBuffer();
  console.log(arrayBuffer);

  //加载的数据
  transferRecognizer.loadExamples(arrayBuffer);

  //查看加载的数据
  console.log(transferRecognizer.countExamples());

  //训练模型
  await transferRecognizer.train({
    epochs: 30,
    callback: tfvis.show.fitCallbacks(
      { name: "训练过程" },
      ['loss', 'acc'],
      { callbacks: ['onEpochEnd'] }
    )
  });
});

//是否监听语音
window.toggle = async (checked) => {
  console.log(checked);
  if (checked) {
    await transferRecognizer.listen(result => {
      const { scores } = result;
      const labels = transferRecognizer.wordLabels();
      const index = scores.indexOf(Math.max(...scores));
      console.log(labels[index]);
      play(labels[index]);
    }, {
      overlapFactor: 0.5,
      probabilityThreshold: 0.75
    });
  } else {
    transferRecognizer.stopListening();
  }
}

window.play = (label) => {
  const div = $('.slider>div');
  if (label == '上一张') {
    if (curIndex === 0) {
      return;
    }
    curIndex--;

  } else if (label == '下一张') {
    if (curIndex === $('img').length - 1) {
      return;
    }
    curIndex++;
  }

  div.css({
    transition: 'transform 1s',
    transform: `translateX(-${100 * curIndex}%)`
  });
}

html部分





  
  
  Document
  



  
监听开关:

执行结果

tensorflow.js 练习语音识别控制轮播图(十二)_第1张图片

 

你可能感兴趣的:(tensorflow.js笔记,tensorflow,javascript,语音识别)