/homo

An open source natural interaction system based on offline wake-up, natural language understanding and sentiment analysis

Primary LanguageGoMIT LicenseMIT

This repository is no longer maintained! ⚠️

这个项目不再维护! ⚠️

Homo

English | 简体中文

An open source natural interaction system based on offline wake-up, natural language understanding and sentiment analysis

Build Status Docker Layers Docker Image Size Docker Pulls Go Report MIT License

Demo Video(Chinese): BiliBili

Notice: A version under reconstruction is located at dev branch and named Aiicy. Aiicy is designed for IoT and User Terminal, and will support IoT devices on different platforms, allowing users to interact with it through browsers. Aiicy and documents are in active development stages, so stay tuned.

Features

  • Offline Keyword Research
    • Based on open source lightweight speech recognition engine PocketSphinx
    • Offline language model training using the open source toolset CMUCLMTK
  • Online speech recognition
    • Using Baidu Online Speech Recognition API
  • Online Text-to-Speech
    • Using Baidu Online Text-to-Speech API
  • Natural Language Understanding
    • Based on open source natural language understanding framework Rasa NLU
    • Using open source information extraction toolset MITIE to build models for entity recognition and intent recognition in Rasa NLU
    • Using open source machine learning framework scikit-learn to do Intent recognition classification
    • Using open source word segmentation component jieba to do Chinese word segmentation
  • Text Sentiment Analysis
    • Sentiment Analysis Using Support Vector Machine(SVM)
    • Using open source topic modelling tool Gensim to build word2vec model
    • (Optional)Sentiment Analysi based on Logistic Regression Classification

Contents

Quick start(Linux)

Get source code with git:

git clone https://github.com/countstarlight/homo.git

Download the dataset for Homo refer document(Chinese): https://homo.codist.me/docs/dataset/

Make sure Docker is installed then run(run.sh needs root privileges if the current user is not in the docker group):

cd homo
cp conf/example_app.ini conf/app.ini
./run.sh

This will download and launch the image from the docker hub by default, or use the image built by Alibaba Cloud:

./run.sh -a

run.sh supported commands:

$ ./run.sh -h
 Usage:
 -p/--pull      Get/Update image from docker hub by default, using '-p a' or '-p ali' to get from Alibaba Cloud
 -a/--aliyun    Launch Alibaba Cloud Docker image (launch docker hub image by default)
 -d/--debug     For debugging, use bash in Docker container, debug docker hub image by default, '-d a' or '-d ali' for debugging Alibaba Cloud image
 -h/--help      show help

Road map

  • Plug-in system

    • Custom actions
  • Improve documentation

    • Custom wake word
    • Expanding Natural Language Understanding
    • Custom actions
  • Support for English

    • Offline Keyword Research
    • Speech Recognition
    • Text-to-Speech
    • Documentation

Contributing

Questions and suggestions are welcomed through issues, or changes submitted to the project through Pull Requests

License

MIT

Copyright (c) 2019-present Codist