在这个项目中,我构建了一个支持语音的可教学机器,它可以扫描书页或任何文本源中的文本并将其转换为上下文,用户可以提出与该上下文相关的问题,机器可以仅使用上下文进行回答。我一直想制造这种易于部署的边缘设备,并且可以轻松地针对给定的上下文进行训练,而无需任何互联网连接。
使用了三种机器学习模型:
1. Tesseract OCR(基于 LSTM 的模型)
Tesseract 是一个 OCR 引擎,支持 unicode 并且能够开箱即用地识别 100 多种语言。它可以被训练来识别其他语言。
2. DeepSpeech(TensorFlow Lite 模型)
DeepSpeech 是一个开源的 Speech-To-Text 引擎,使用由机器学习技术训练的模型,谷歌的 TensorFlow 使实现更容易。
3.伯特
BERT 是一种语言表示模型,代表 Transformers 的双向编码器表示。预训练的 BERT 模型只需一个额外的输出层即可进行微调,从而为各种任务(例如问答和语言推理)创建最先进的模型,而无需对特定于任务的架构进行大量修改。
前 2 个模型在 Raspberry Pi 4 上运行,最后一个模型在英特尔神经计算棒 2 上使用 OpenVINO 工具包运行。
请按照下面给出的分步说明下载并安装应用程序的所有先决条件。假设已经安装了 Raspberry PI OS(以前称为 Raspbian),并且使用 raspi-config 实用程序启用了 SSH、音频、SPI、I2C 和摄像头。
$ sudo apt update
$ sudo apt install festival cmake wget python3-pip
$ mkdir -p ~/Downloads
$ cd ~/Downloads
$ wget https://download.01.org/opencv/2020/openvinotoolkit/2020.4/l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz
$ sudo mkdir -p /opt/intel/openvino
$ sudo tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz --strip 1 -C /opt/intel/openvino
$ sudo usermod -a -G users "$(whoami)"
现在注销并重新登录。
$ source /opt/intel/openvino/bin/setupvars.sh
$ sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
现在插入英特尔神经计算棒 2。
Replace the following line in the /etc/festival.scm:
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")
with the line below:
(Parameter.set 'Audio_Command "aplay -Dhw:0 -q -c 1 -t raw -f s16 -r $SR $FILE")
$ cd ~
$ git clone https://github.com/HinTak/seeed-voicecard
$ cd seeed-voicecard
$ sudo ./install.sh
$ sudo reboot
$ cd ~
$ git clone https://github.com/metanav/TeachableMachine
$ cd ~/TeachableMachine
$ mkdir models
$ cd models
$ wget https://download.01.org/opencv/2020/openvinotoolkit/2020.4/open_model_zoo/models_bin/3/bert-small-uncased-whole-word-masking-squad-0001/FP16/bert-small-uncased-whole-word-masking-squad-0001.bin
$ wget https://download.01.org/opencv/2020/openvinotoolkit/2020.4/open_model_zoo/models_bin/3/bert-small-uncased-whole-word-masking-squad-0001/FP16/bert-small-uncased-whole-word-masking-squad-0001.xml
$ cd ~/TeachableMachine/models
$ wget https://github.com/mozilla/DeepSpeech/releases/download/v0.8.2/deepspeech-0.8.2-models.tflite
$ wget https://github.com/mozilla/DeepSpeech/releases/download/v0.8.2/deepspeech-0.8.2-models.scorer
$ cd ~/TeachableMachine
$ pip3 install -r requirements.txt
$ python3 main.py
Raspberry Pi 4 连接到 ReSpeaker 2-mics PI HAT,用于使用板载麦克风接收语音。Raspberry Pi 摄像头模块使用 CSI2 连接器连接到 Raspberry Pi 4,该连接器用于扫描书中的文本。ReSpeaker 2-mics PI HAT 上有一个按钮,用于触发扫描过程的开始。按下按钮后,用户必须在 5 秒内立即向相机显示文本(书页或带有一些有意义的英文文本的论文,例如故事段落或维基百科条目)。使用 Tesseract OCR 应用程序捕获书页图像并将其转换为文本。捕获的文本用作 BERT 模型的上下文,用于回答问题。机器要求用户提问。用户提出问题并使用 DeepSpeech 应用程序将问题语音转换为文本。转换后的问题文本被输入到在英特尔神经计算棒 2 上运行的 BERT 模型中,该模型通过置信度分数推断出答案。使用 Festival 应用程序将最佳答案文本转换为语音,该应用程序在连接到 Raspberry Pi 4 音频输出(3.5 毫米插孔)的扬声器上播放。请参阅连接图的原理图部分并查看下面的流程图以更好地了解应用流程。使用 Festival 应用程序将最佳答案文本转换为语音,该应用程序在连接到 Raspberry Pi 4 音频输出(3.5 毫米插孔)的扬声器上播放。请参阅连接图的原理图部分并查看下面的流程图以更好地了解应用流程。使用 Festival 应用程序将最佳答案文本转换为语音,该应用程序在连接到 Raspberry Pi 4 音频输出(3.5 毫米插孔)的扬声器上播放。请参阅连接图的原理图部分并查看下面的流程图以更好地了解应用流程。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !