All Projects → MycroftAI → Adapt

MycroftAI / Adapt

Licence: apache-2.0
Adapt Intent Parser

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Adapt

Quietweather
☀️ Develop a weather wechat mini program application in two days - 两天撸一个天气应用微信小程序
Stars: ✭ 677 (-1.88%)
Mutual labels:  open-source, opensource
Speech To Text Benchmark
speech to text benchmark framework
Stars: ✭ 481 (-30.29%)
Mutual labels:  speech-recognition, speech-to-text
Speech Demo
语音api示例
Stars: ✭ 454 (-34.2%)
Mutual labels:  speech-recognition, speech-to-text
Rando.js
The world's easiest, most powerful random function.
Stars: ✭ 659 (-4.49%)
Mutual labels:  open-source, opensource
Sonus
💬 /so.nus/ STT (speech to text) for Node with offline hotword detection
Stars: ✭ 532 (-22.9%)
Mutual labels:  speech-recognition, speech-to-text
Voice Overlay Ios
🗣 An overlay that gets your user’s voice permission and input as text in a customizable UI
Stars: ✭ 440 (-36.23%)
Mutual labels:  speech-recognition, speech-to-text
Enclosure Picroft
Mycroft interface for Raspberry Pi environment
Stars: ✭ 649 (-5.94%)
Mutual labels:  open-source, opensource
Tensorflowasr
⚡️ TensorFlowASR: Almost State-of-the-art Automatic Speech Recognition in Tensorflow 2. Supported languages that can use characters or subwords
Stars: ✭ 400 (-42.03%)
Mutual labels:  speech-recognition, speech-to-text
Silero Models
Silero Models: pre-trained STT models and benchmarks made embarrassingly simple
Stars: ✭ 522 (-24.35%)
Mutual labels:  speech-recognition, speech-to-text
Wellcommerce
Open-source E-Commerce software
Stars: ✭ 499 (-27.68%)
Mutual labels:  open-source, opensource
Cortx
CORTX Community Object Storage is 100% open source object storage uniquely optimized for mass capacity storage devices.
Stars: ✭ 426 (-38.26%)
Mutual labels:  open-source, opensource
Hacktoberfest 2020
Welcome to Open-source! Simply add your details to contributors | Repo for Hacktoberfest 2020 ✅
Stars: ✭ 621 (-10%)
Mutual labels:  open-source, opensource
Asrt speechrecognition
A Deep-Learning-Based Chinese Speech Recognition System 基于深度学习的中文语音识别系统
Stars: ✭ 4,943 (+616.38%)
Mutual labels:  speech-recognition, speech-to-text
Aimet
AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.
Stars: ✭ 453 (-34.35%)
Mutual labels:  open-source, opensource
Rhino
On-device speech-to-intent engine powered by deep learning
Stars: ✭ 406 (-41.16%)
Mutual labels:  speech-recognition, speech-to-text
Awesome Open Source Supporters
⭐️ A curated list of companies that offer their services for free to Open Source projects
Stars: ✭ 457 (-33.77%)
Mutual labels:  open-source, opensource
Cheetah
On-device streaming speech-to-text engine powered by deep learning
Stars: ✭ 383 (-44.49%)
Mutual labels:  speech-recognition, speech-to-text
Awesome Kaldi
This is a list of features, scripts, blogs and resources for better using Kaldi ( http://kaldi-asr.org/ )
Stars: ✭ 393 (-43.04%)
Mutual labels:  speech-recognition, speech-to-text
Java Speech Api
The J.A.R.V.I.S. Speech API is designed to be simple and efficient, using the speech engines created by Google to provide functionality for parts of the API. Essentially, it is an API written in Java, including a recognizer, synthesizer, and a microphone capture utility. The project uses Google services for the synthesizer and recognizer. While this requires an Internet connection, it provides a complete, modern, and fully functional speech API in Java.
Stars: ✭ 490 (-28.99%)
Mutual labels:  speech-recognition, speech-to-text
Thor
DIY 3D Printable Robotic Arm
Stars: ✭ 556 (-19.42%)
Mutual labels:  open-source, opensource

License CLA Team Status

Build Status Coverage Status PRs Welcome Join chat

Adapt Intent Parser

The Adapt Intent Parser is a flexible and extensible intent definition and determination framework. It is intended to parse natural language text into a structured intent that can then be invoked programatically.

Introducing the Adapt Intent Parser

Getting Started

To take a dependency on Adapt, it's recommended to use virtualenv and pip to install source from github.

$ virtualenv myvirtualenv
$ . myvirtualenv/bin/activate
$ pip install -e git+https://github.com/mycroftai/adapt#egg=adapt-parser

Examples

Executable examples can be found in the examples folder.

Intent Modelling

In this context, an Intent is an action the system should perform. In the context of Pandora, we’ll define two actions: List Stations, and Select Station (aka start playback)

With the Adapt intent builder:

list_stations_intent = IntentBuilder('pandora:list_stations')\
    .require('Browse Music Command')\
    .build()

For the above, we are describing a “List Stations” intent, which has a single requirement of a “Browse Music Command” entity.

play_music_command = IntentBuilder('pandora:select_station')\
    .require('Listen Command')\
    .require('Pandora Station')\
    .optionally('Music Keyword')\
    .build()

For the above, we are describing a “Select Station” (aka start playback) intent, which requires a “Listen Command” entity, a “Pandora Station”, and optionally a “Music Keyword” entity.

Entities

Entities are a named value. Examples include: Blink 182 is an Artist The Big Bang Theory is a Television Show Play is a Listen Command Song(s) is a Music Keyword

For my Pandora implementation, there is a static set of vocabulary for the Browse Music Command, Listen Command, and Music Keyword (defined by me, a native english speaker and all-around good guy). Pandora Station entities are populated via a "List Stations" API call to Pandora. Here’s what the vocabulary registration looks like.

def register_vocab(entity_type, entity_value):
    pass
    # a tiny bit of code 

def register_pandora_vocab(emitter):
    for v in ["stations"]:
        register_vocab('Browse Music Command', v)

    for v in ["play", "listen", "hear"]:
        register_vocab('Listen Command', v)

    for v in ["music", "radio"]:
        register_vocab('Music Keyword', v)

    for v in ["Pandora"]:
        register_vocab('Plugin Name', v)

    station_name_regex = re.compile(r"(.*) Radio")
    p = get_pandora()
    for station in p.stations:
        m = station_name_regex.match(station.get('stationName'))
        if not m:
            continue
        for match in m.groups():
            register_vocab('Pandora Station', match)

Learn More

Further documentation can be found at https://mycroft-ai.gitbook.io/docs/mycroft-technologies/adapt

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].