Metadata-Version: 2.1
Name: npc-engine
Version: 0.1.5
Summary: Deep learning inference and NLP toolkit for game development.
Home-page: https://github.com/npc-engine/npc-engine
Download-URL: https://github.com/npc-engine/npc_engine/archive/0.1.5.tar.gz
Author: eublefar
Author-email: evil.unicorn1@gmail.com
License: MIT
Keywords: npc,AI,inference,deep-learning
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
Classifier: Operating System :: Microsoft :: Windows
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click (<8,>=7.0)
Requires-Dist: json-rpc (==1.13.0)
Requires-Dist: tokenizers (==0.11.6)
Requires-Dist: loguru (==0.5.3)
Requires-Dist: PyYAML (==6.0)
Requires-Dist: pyzmq (==22.3.0)
Requires-Dist: Unidecode (==1.1.1)
Requires-Dist: inflect (==4.1.0)
Requires-Dist: scipy (==1.7.2)
Requires-Dist: sounddevice (==0.4.3)
Requires-Dist: Jinja2 (==3.0.2)
Requires-Dist: webrtcvad (==2.0.10)
Requires-Dist: numpy (~=1.21)
Requires-Dist: setuptools (~=57.0.0)
Requires-Dist: huggingface-hub (==0.1.2)
Requires-Dist: pyctcdecode (>=0.1.1)
Requires-Dist: librosa (>=0.8.0)
Requires-Dist: numba (==0.48)
Requires-Dist: platformdirs (>=1.0.0)
Requires-Dist: scikit-learn (==1.0.2)
Requires-Dist: jinja2schema (==0.1.4)
Requires-Dist: appdirs (==1.4.4)
Requires-Dist: aiohttp (==3.8.1)
Requires-Dist: espnet-onnx (==0.1.9)
Provides-Extra: benchmarks
Requires-Dist: py3nvml ; extra == 'benchmarks'
Provides-Extra: cpu
Requires-Dist: onnxruntime (<2.0.0,>=1.8.0) ; extra == 'cpu'
Provides-Extra: dev
Requires-Dist: pip-check-reqs (<3,>=2.0.1) ; extra == 'dev'
Requires-Dist: pip-licenses (>=3.5.3) ; extra == 'dev'
Requires-Dist: black (>=19.10b0) ; extra == 'dev'
Requires-Dist: flake8 (<4,>=3.7.9) ; extra == 'dev'
Requires-Dist: flake8-docstrings (<2,>=1.5.0) ; extra == 'dev'
Requires-Dist: pytest (>=6.0.1) ; extra == 'dev'
Requires-Dist: pytest-cov (<3,>=2.5.1) ; extra == 'dev'
Requires-Dist: pytest-pythonpath (<1,>=0.7.2) ; extra == 'dev'
Requires-Dist: setuptools (>=38.4.0) ; extra == 'dev'
Requires-Dist: tox (<4,>=3.0.0) ; extra == 'dev'
Requires-Dist: twine (==3.2.0) ; extra == 'dev'
Requires-Dist: pyinstaller (==5.0) ; extra == 'dev'
Requires-Dist: pydub ; extra == 'dev'
Requires-Dist: sclblonnx (==0.1.9) ; extra == 'dev'
Requires-Dist: pytest-asyncio (>=0.18.3) ; extra == 'dev'
Provides-Extra: dml
Requires-Dist: onnxruntime-directml (<2.0.0,>=1.8.0) ; extra == 'dml'
Provides-Extra: doc
Requires-Dist: mkdocs (>=1.2.3) ; extra == 'doc'
Requires-Dist: mkdocstrings[python] (==0.18.0) ; extra == 'doc'
Requires-Dist: mkdocs-material (>=7.3.6) ; extra == 'doc'
Requires-Dist: mike (>=1.1.2) ; extra == 'doc'

# npc-engine

NPC-Engine is a deep learning and NLP toolkit for designing NPC AI with natural language.

[![Build Status](https://github.com/npc-engine/npc-engine/actions/workflows/documentation_master.yml/badge.svg)](https://npc-engine.github.io/npc-engine/)
[![Build Status](https://github.com/npc-engine/npc-engine/actions/workflows/ci.yml/badge.svg)](https://npc-engine.github.io/npc-engine/)

## Features

- Chat-bot dialogue system.
- SoTA tools like text semantic similarity and text to speech.
- Easy, open source deep learning model standard (ONNX with YAML configs).
- GPU accelerated inference with onnxruntime.
- Engine agnostic API through ZMQ server via [JSONRPC 2.0](https://www.jsonrpc.org/specification).

## Getting started

The easiest way to get started is to use NPC Engine through the [Unity integration](https://assetstore.unity.com/packages/tools/ai/npc-engine-208498)

You can also use it directly through ZMQ or HTTP. See [Documentation](https://npc-engine.com/stable/inference_engine/running_server/) for more details.

## Roadmap

### Done:

- Real-time end-to-end chatbot dialogue system
- Semantic similarity
- Real-time speech to text (experimental)
- Unity integration
- CLI tool for importing models from [Huggingface](https://huggingface.co/transformers/index.html)
- Asynchronous API features

### In progress:

- Actions and planning
- Unreal integration
- Importing models from popular TTS libraries
- Emotion features
- Multiple languages support
- **Much more**

## Build on Windows

- Create virtualenv and activate it:

    ```cmd
    > python3 -m venv npc-engine-venv
    > .\npc-engine-venv\activate.bat
    ```

- Install dependencies

    ```
    > pip install -e .[dev,dml]
    ```

- (Optional) Compile, build and install your custom ONNX python runtime

    Build instructions here https://onnxruntime.ai/

- (Optional) Run tests
    ```
    > tox
    ```

- Compile to exe with:

    ```
    > pyinstaller --hidden-import="sklearn.utils._cython_blas" --hidden-import="sklearn.neighbors.typedefs" ^
    --hidden-import="sklearn.neighbors.quad_tree" --hidden-import="sklearn.tree._utils" ^
    --hidden-import="sklearn.neighbors._typedefs" --hidden-import="sklearn.utils._typedefs" ^
    --hidden-import="sklearn.neighbors._partition_nodes" --additional-hooks-dir hooks ^
    --exclude-module tkinter --exclude-module matplotlib .\npc_engine\cli.py --onedir
    ```

## Community

We have a [Discord](https://discord.gg/R4zBNmnfrU) server where you can get support, ask questions and show off your creations.

If you would like to donate, you can check out our [Patreon](https://www.patreon.com/npcengine).

### Our Patrons

- Marrech Games

## Authors

- **eublefar** - _Python, Neural Nets_ - [github](https://github.com/eublefar)
- **igorzmitrovich** - _Python, CI/CD_ - [github](https://github.com/igorzmitrovich)

See also the list of [contributors](https://github.com/npc-engine/npc-engine/contributors) who participated in this project.
