Code Monkey home page Code Monkey logo

easyass's Introduction

智能助手 Try Again

注意

尽量先看完整个介绍再动手,过些天会有相关的制作过程的教学 视频上传,目前还未处理完。

本项目制作的视频教程

新的版本,可玩性更好一点

dev分之

效果

请看视频教程第六集

###目前测试成功的运行平台

  1. Ubuntu18.04
  2. 树莓派3B+
  3. 理论上支持大部分Linux系统

思路

唤醒模块

使用snowboy。

  1. 唤醒模块一旦唤醒,暂时就不工作。直到该次唤醒工作结束后再 继续工作
  2. 唤醒之后,我们检查网络状态

录音模块

PyAudio

  1. 10s之内没有人说话就自动关闭

    系统继续进入等待唤醒状态

  2. 10s之后如果唤醒人继续在讲话,那么我们需要继续录音

    如果录音长度超过30s,我们就暂停录音,提示你也太啰嗦了 否则我们就正常的进入下一步

  3. 录制完成的音频,存储成wav,流处理的方式直接进行stt处理

    录音完成之后我们的录音模块暂时就停止工作

语音转文字stt

Baidu stt

  1. 将使用百度的python的stt
  2. 返回文字,我们接收文字。
  3. 如果我们返回文字是空的或者其他的错误,我们提示您能再说 一遍吗,我没听清楚(自动进入录音状态)。出错后跟出错 提示,做出相应的反馈,网络错误(进入待唤醒状态)

对话机器人

tuling123.com的对话机器人

  1. 我们免费对话机器人
  2. 需要上传我们文字
  3. 返回他的答案
  4. 返回出错,处理方式同上

文字转语音模块tts

百度tts模块

  1. 将对话机器人,返回文字转换成语音
  2. 返回语音如果出错,我们处理同上

播放模块

PyAudio

  1. 将这个语音播放出来

主体控制模块

  1. 当对话机器人回应唤醒人的时候,是否自动进入下一轮的录音 或者,是回应完之后就进入待唤醒状态。

  2. 如果加入只能家具控制,那么我们需要两种方式来做

    a. 我们从这个stt返回后的语句中查询对应的关键字,然后 处理。 b. 使用其他的唤醒词,Again Try。

nlp的意图匹配模块

示例:

我说:帮我把灯打开

系统(明白是我要打开我的灯,而不是和它聊天):打开灯

我不想聊了

系统要退出循环聊天

开始手动配置

唤醒模块

1.配置snowboy的编译环境

sudo apt-get install python-pyaudio python3-pyaudio sox

sudo pip install pyaudio

sudo pip3 install pyaudio

cd 你的项目根目录/

mkdir SBCompile

wget http://downloads.sourceforge.net/swig/swig-3.0.10.tar.gz

sudo apt-get install libpcre3 libpcre3-dev

ls

tar -zxvf swig-3.0.10.tar.gz

cd swig-3.0.10/

./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings && make

sudo make install

sudo install -v -m755 -d /usr/share/doc/swig-3.0.10

sudo cp -v -R Doc/* /usr/share/doc/swig-3.0.10

sudo apt-get install libatlas-base-dev

cd ..

mkdir rec_voice

cd rec_voice/

ls

rec 1.wav

ls

编译snowboy的准备工作结束

cd ..

git clone https://github.com/Kitt-AI/snowboy.git

(这个是我没看明白,下面这句不用执行,把视频看下去就知道了)
sudo apt-get install libmagic-dev libatlas-base-dev

cd snowboy/

cd swig/

cd Python/

make

cd ..

cd Python3/

make

exit

语音识别模块

sudo pip3 install baidu-aip

exit

对话模块

主要是代码

语音合成模块

与语音识别模块一直,主要是写几个代码

语音播放模块

sudo pip3 install playsound

运行

需要更新stt_tts下的appid ak sk,理论上就可以在hotword下 的try_again_detect.py直接运行就行。实际上可能需要安装一些库 大家最好就是看看上面的过程。默认的唤醒词是smart mirror

本项目主要的目的在于给大家一个手动制作一个智能音箱的示例 如果真的想要实用,建议使用本文最后的 Wukong项目

本项目还有对应的教学视频,目前还未对一些秘钥进行打码,所以暂未 上传,之后将免费给大家。

相关物

百度语音技术

Snowboy

Tuling123代码源

Tuling123官网

emotibot

Wukong

百度的对话机器人

所有权声明

  1. 本项目所有外部资源来源于网络,如有问题,请联系我删除。
  2. 本项目仅可用于个人DIY使用,禁止用于商业目的。
  3. 本项目使用后造成的后果,本人一概不负责任。
  4. 本项目立项目标是在于告诉大家怎么去建立这样一个系统,如果只是想搭建一个基于树莓派 等的智能系统,建议使用文中提到的WuKong项目,该项目由腾讯工程师建立。远远强于我这个 本科生。
  5. 关于捐赠,若果真的想给就在B站投个币吧,或者以下二维码

二维码

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.