All Projects → just-ai → Aimybox Android Assistant

just-ai / Aimybox Android Assistant

Licence: apache-2.0
Embeddable custom voice assistant for Android applications

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Aimybox Android Assistant

spokestack-android
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!
Stars: ✭ 52 (-62.59%)
Mutual labels:  voice, speech-recognition
Pocketsphinx Python
Python interface to CMU Sphinxbase and Pocketsphinx libraries
Stars: ✭ 298 (+114.39%)
Mutual labels:  speech-recognition, voice
download audioset
📁 This repo makes it easy to download the raw audio files from AudioSet (32.45 GB, 632 classes).
Stars: ✭ 53 (-61.87%)
Mutual labels:  voice, speech-recognition
api
Speechly public API definitions and generated code
Stars: ✭ 15 (-89.21%)
Mutual labels:  voice, speech-recognition
Voice Overlay Ios
🗣 An overlay that gets your user’s voice permission and input as text in a customizable UI
Stars: ✭ 440 (+216.55%)
Mutual labels:  speech-recognition, voice
VoiceDictation
迅飞 语音听写 WebAPI - 把语音(≤60秒)转换成对应的文字信息,让机器能够“听懂”人类语言,相当于给机器安装上“耳朵”,使其具备“能听”的功能。
Stars: ✭ 36 (-74.1%)
Mutual labels:  voice, speech-recognition
Alan Sdk Ionic
Alan AI Ionic SDK adds a voice assistant or chatbot to your app. Supports React, Angular.
Stars: ✭ 287 (+106.47%)
Mutual labels:  speech-recognition, voice
Voice Overlay Android
🗣 An overlay that gets your user’s voice permission and input as text in a customizable UI
Stars: ✭ 189 (+35.97%)
Mutual labels:  speech-recognition, voice
Alan Sdk Web
Alan AI Web SDK adds a voice assistant or chatbot to your app. Supports React, Angular, Vue, Ember, JavaScript, Electron.
Stars: ✭ 368 (+164.75%)
Mutual labels:  speech-recognition, voice
Alan Sdk Ios
Alan AI iOS SDK adds a voice assistant or chatbot to your app. Supports Swift, Objective-C.
Stars: ✭ 318 (+128.78%)
Mutual labels:  speech-recognition, voice
picovoice
The end-to-end platform for building voice products at scale
Stars: ✭ 316 (+127.34%)
Mutual labels:  voice, speech-recognition
Annyang
💬 Speech recognition for your site
Stars: ✭ 6,216 (+4371.94%)
Mutual labels:  speech-recognition, voice
opensource-voice-tools
A repo listing known open source voice tools, ordered by where they sit in the voice stack
Stars: ✭ 21 (-84.89%)
Mutual labels:  voice, speech-recognition
react-client
An React client library for Speechly API
Stars: ✭ 71 (-48.92%)
Mutual labels:  voice, speech-recognition
anycontrol
Voice control for your websites and applications
Stars: ✭ 53 (-61.87%)
Mutual labels:  voice, speech-recognition
Alan Sdk Android
Alan AI Android SDK adds a voice assistant or chatbot to your app. Supports Java, Kotlin.
Stars: ✭ 278 (+100%)
Mutual labels:  speech-recognition, voice
Zzz Retired openstt
RETIRED - OpenSTT is now retired. If you would like more information on Mycroft AI's open source STT projects, please visit:
Stars: ✭ 146 (+5.04%)
Mutual labels:  speech-recognition, voice
Naomi
The Naomi Project is an open source, technology agnostic platform for developing always-on, voice-controlled applications!
Stars: ✭ 171 (+23.02%)
Mutual labels:  speech-recognition, voice
Alan Sdk Flutter
Alan AI Flutter SDK adds a voice assistant or chatbot to your app.
Stars: ✭ 309 (+122.3%)
Mutual labels:  speech-recognition, voice
Speech Emotion Analyzer
The neural network model is capable of detecting five different male/female emotions from audio speeches. (Deep Learning, NLP, Python)
Stars: ✭ 633 (+355.4%)
Mutual labels:  speech-recognition, voice

Aimybox voice assistant

Open source voice assistant built on top of Aimybox SDK

Twitter Follow Travis CI Build Bintray artifact

iOS version is available here

Key Features

  • Provides ready to use UI components for fast building of your voice assistant app
  • Modular and independent from speech-to-text, text-to-speech and NLU vendors
  • Provides ready to use speech-to-text and text-to-speech implementations like Android platform speechkit, Google Cloud speechkit, Houndify or Snowboy wake word trigger
  • Works with any NLU providers like Aimylogic, Rasa or Dialogflow
  • Fully customizable and extendable, you can connect any other speech-to-text, text-to-speech and NLU services
  • Open source under Apache 2.0, written in pure Kotlin
  • Embeddable into any application or device running Android
  • Voice skills logic and complexity is not limited by any restrictions
  • Can interact with any local device services and local networks

How to start using

Just clone this repository and try to build and run the app module 😉

If you want some details - there is how to do the same with your hands.

  1. Create a new Android project with next dependencies in the build.gradle file
    android {
        compileOptions {
            sourceCompatibility = JavaVersion.VERSION_1_8
            targetCompatibility = JavaVersion.VERSION_1_8
        }
    }

    repositories {
        jcenter()
    }
    
    dependencies {
        implementation("com.justai.aimybox:core:0.15.0")
        implementation("com.justai.aimybox:components:0.1.10")
    }
  1. Add one or more dependencies of third party speech-to-text and text-to-speech libraries. For example
implementation("com.justai.aimybox:google-platform-speechkit:0.15.0")
  1. Create a new project in Aimybox console, enable some voice skills and copy your project's API key.

  2. Instantiate Aimybox in your Application class like that

class AimyboxApplication : Application(), AimyboxProvider {

    companion object {
        private const val AIMYBOX_API_KEY = "your Aimybox project key"
    }

    override val aimybox by lazy { createAimybox(this) }

    private fun createAimybox(context: Context): Aimybox {
        val unitId = UUID.randomUUID().toString()

        val textToSpeech = GooglePlatformTextToSpeech(context)
        val speechToText = GooglePlatformSpeechToText(context)

        val dialogApi = AimyboxDialogApi(AIMYBOX_API_KEY, unitId)

        return Aimybox(Config.create(speechToText, textToSpeech, dialogApi))
    }
}
  1. Add FrameLayout to your application's layout like this
<FrameLayout
    android:id="@+id/assistant_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  1. Add AimyboxAssistantFragment in your activity that uses this layout (like here)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.layout_activity_main)

    supportFragmentManager.beginTransaction().apply {
        replace(R.id.assistant_container, AimyboxAssistantFragment())
        commit()
    }
}
  1. Make sure your app's theme contains Aimybox's styles:
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <!-- Customize Assistant components here -->
        <item name="aimybox_assistantButtonTheme">@style/CustomAssistantButtonTheme</item>
        <item name="aimybox_recognitionTheme">@style/CustomRecognitionWidgetTheme</item>
        <item name="aimybox_responseTheme">@style/CustomResponseWidgetTheme</item>
        <item name="aimybox_imageReplyTheme">@style/CustomImageReplyWidgetTheme</item>
        <item name="aimybox_buttonReplyTheme">@style/CustomButtonReplyWidgetTheme</item>
    </style>

    <style name="CustomAssistantButtonTheme" parent="DefaultAssistantTheme.AssistantButton">
    </style>

    <style name="CustomRecognitionWidgetTheme" parent="DefaultAssistantTheme.Widget.Recognition">
    </style>

    <style name="CustomResponseWidgetTheme" parent="DefaultAssistantTheme.Widget.Response">
    </style>

    <style name="CustomButtonReplyWidgetTheme" parent="DefaultAssistantTheme.Widget.ButtonReply">
    </style>

    <style name="CustomImageReplyWidgetTheme" parent="DefaultAssistantTheme.Widget.ImageReply">
    </style>

</resources>

Now you can run your application and tap a small microphone button in bottom right corner of the screen. Try to say some phrase that corresponds to any of enabled voice skills in your Aimybox project.

Your assistant will handle all job regarding speech recognition, processing, displaying and synthesising of the response.

More details

Please refer to the demo app to see how to use Aimybox library in your own project.

Documentation

There is a full Aimybox documentation available here. It's better to start with our Quick Start to make first steps with Aimybox.

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].