Часть II • Введение в TensorFlow.js
По завершении обучения модель должна достичь итоговой безошибочности на
проверочном (контрольном) наборе данных примерно 94 %.
Обученная модель сохраняется по пути, заданному с помощью флага в преды
дущей команде. Как и в случае сверточной сети для MNIST, обученной нами с по
мощью tfjsnode, сохраненную модель позже можно загрузить в браузере. Впрочем,
для получения данных с микрофона и предварительного их преобразования в под
ходящий для использования моделью формат необходимы определенные знания
API WebAudio. Для вашего удобства мы написали классадаптер, который умеет
не только загружать обученную сверточную сеть для аудиоданных, но и выполнять
ввод и предварительную обработку данных. Если вам интересны механизмы кон
вейера ввода аудиоданных, можете заглянуть в исходный код из репозитория Git
tfjsmodel, расположенный в каталоге
speech-commands/src
. Этот адаптер доступен
через систему управления пакетами npm под названием
@tensorflow-models/speech-
commands
. В листинге 4.9 показан весьма минималистичный пример использования
этого класса для онлайнраспознавания слов речевых команд в браузере.
В каталоге
speech-commands/demo
репозитория tfjsmodels вы найдете более
полноценный пример применения этого пакета. Для клонирования и запуска демон
страционного примера выполните следующие команды в каталоге
speech-commands
:
git clone https://github.com/tensorflow/tfjs-models.git
cd tfjs-models/speech-commands
yarn && yarn publish-local
cd demo
yarn && yarn link-local && yarn watch
Команда
yarn
watch
автоматически открывает новую вкладку в браузере, ис
пользуемом по умолчанию. Чтобы увидеть средство распознавания речевых ко
манд в действии, убедитесь, что на вашей машине доступен микрофон (он встроен
в большинство ноутбуков). Каждое распознанное слово из словаря будет сразу
отображаться на экране вместе с содержащей его спектрограммой длительностью
одна секунда. Перед вами браузерное средство распознавания отдельных слов
в действии, основанное на API WebAudio и глубокой сверточной сети. Но ведь
оно не способно распознавать связную речь, наделенную грамматикой, правда?
Для подобного нам понадобятся базовые элементы других типов нейронных сетей,
способные обрабатывать последовательную информацию. Мы вернемся к этому
вопросу в главе 8.
Листинг 4.9. Пример использования модуля @tensorflow-models/speech-commands