Comparison of human–computer AI frameworks Dialogflow and Mycroft

DialogFlow

DialogFlow is a popular chatbot development platform by google. It provides graphical interface to design and integrate conversational user interfaces into mobile apps, web applications, devices, and bots. Entities and intents are defined through the online interface by providing
several examples. Similar sentences are then matched using machine learning.

How DialogFlow works?

In Dialogflow, the basic flow of conversation involves these steps:

1. The user giving input
2. Your DialogFlow agent parsing that input
3. Returning the input response to the user

To define how conversations work, you create intents in your agent that map user input to responses. In each intent, you define examples of user utterances that can trigger the intent, what to extract from the utterance, and how to respond.

To deploy a static chatbot dialogflow does not require any coding. To add dynamic content such as the report for the current weather, the developer
must navigate to fulfilment page and define a handler for each action (action name is defined inside the intent). Dialogflow has the ability
to host a Javascript code directly, to serve as a handler, or HTTP endpoint has to be provided where the webhook with the request is sent. If the webhook end-point is unavailable, default static response is returned.

Dialogflow provides an on-page chat to test the chatbot without any required integration.

Integrations

Integrations with most of the messaging platforms like facebook, slack, twitter, skype, viber, line are provided as well as web chat that can be directly embedded into a business webpage.

Mycroft

Mycroft is the world’s first open source assistant that use natural language processing and machine learning to provide an open source voice assistant.

Mycroft runs anywhere – on a desktop computer, inside an automobile, or on a Raspberry Pi. This is open source software which can be freely remixed, extended and improved. Mycroft may be used in anything from a science project to an enterprise software application.

It is a set of software and hardware tools. Mycroft is written in Python programming language, and it is designed to run on multiple
platforms.

It is aimed to be a modulator consisting of swappable components.

* **Wake Word Detection** :

A wake word is a phrase that you use to tell mycroft that you're about to issue a command, but one can also configure his own wake word in the Mycroft home account.

**Speech to text(STT)** :

Speech to Text (STT) software is used to take spoken words, and turn them into text phrases that can then be acted on. Mycorft currently uses the external text to speech softwares. Mycroft provides the ability to choose from multiple engines using Google STT as default. It can be substituted by IBM Watson, which provides more free minutes, or Wit.ai STT, which is currently provided as free service.

**Intent Parser** :

It is the core brain of the assistant.It is software which identifies what the user’s intent is based on their speech. An intent parser usually takes the output of a Speech to Text (STT) engine as an input.

Mycroft uses Adapt intent parser by default. The developer can define keyword or regex entities. The intent is then built by setting an entity as required or optional. The sentence is matched if all required entities are present.

Mycroft is currently developing Padatious, open source neural network for intent determination.

**Text to Speech(TTS)** :

Text to Speech (TTS) software takes written text, such as as in text files on a computer, and uses a voice to speak the text. Text to Speech can have different voices, dependenting on the TTS engine used.

Comparison

Open Source

Mycroft is open source which means that code used by the Mycroft can be copied, inspected and also it can be modified.

While on the other hand tools like Google Assistant™ are black boxes. That is, we can’t look inside them, and see what they do – or importantly – how they do it. And while they may allow you some flexibility to create new Skills, these are usually strictly controlled. Mycroft gives you freedom, flexibility and control over how your want your voice assistant to work. Mycroft is AI for everyone.

Integrations

Google's conversational platform can be easily integrated with many of the messaging platforms like facebook, slack, line etc. It also provides the flexibility to integrate within your android app, websites and manage your app and websites with the DialogFlow agent.

On the other hand mycroft does not provide the capability to integrate it with the messaging platforms like facebook, slack etc. Its android version is also a proof of concept however a dedicated development team can work to add these capabilities with ease . Dialogflow will have some limitation as it is the project owned by a corporate firm and they manage it however there is no such restriction on customization and integration of mycroft. you can work without restrictions and limitations .

More hardware, more choices

Mycroft runs on a wide range of open hardware and software platforms like on Linux, android devices and also on the Raspberry Pi. On the other hand dialogflow does not support the hardware platforms like Linux.

By over-viewing the features of both we can say that mycroft is suited for the personal and custom assistant and we can offer personalized and customized buisness solution over it while dialogflow allows us to build the business chatbots as there is available integration for many of the platforms.

Comparison of technologies used in varios known voice assistants

Following are related links

https://mycroft.ai/documentation/mycroft-software-hardware/

https://dialogflow.com/

https://dialogflow.com/docs/intents