All Projects → mautini → Google Assistant Java Demo

mautini / Google Assistant Java Demo

Licence: gpl-3.0
A simple Google Assistant Client in Java

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Google Assistant Java Demo

Assistants Pi
Headless Google Assistant and Alexa on Raspberry Pi
Stars: ✭ 280 (+428.3%)
Mutual labels:  assistant, google-assistant, google
Gassistpi
Google Assistant for Single Board Computers
Stars: ✭ 911 (+1618.87%)
Mutual labels:  assistant, google-assistant, google
Macassistant
Google Assistant for macOS!
Stars: ✭ 1,564 (+2850.94%)
Mutual labels:  assistant, google-assistant, google
Kroto Plus
gRPC Kotlin Coroutines, Protobuf DSL, Scripting for Protoc
Stars: ✭ 400 (+654.72%)
Mutual labels:  grpc, protocol-buffers
Flask Assistant
Framework for Building Virtual Assistants with Dialogflow and python
Stars: ✭ 358 (+575.47%)
Mutual labels:  assistant, google-assistant
Gifee
Google's Infrastructure for Everyone Else
Stars: ✭ 370 (+598.11%)
Mutual labels:  grpc, google
protop
protobufs, packaged. https://protop.io
Stars: ✭ 68 (+28.3%)
Mutual labels:  protocol-buffers, grpc
Protobuf
[Looking for new ownership] Protocol Buffers for Go with Gadgets
Stars: ✭ 4,998 (+9330.19%)
Mutual labels:  grpc, protocol-buffers
Awesome Grpc
A curated list of useful resources for gRPC
Stars: ✭ 4,932 (+9205.66%)
Mutual labels:  grpc, protocol-buffers
Prototool
Your Swiss Army Knife for Protocol Buffers
Stars: ✭ 4,932 (+9205.66%)
Mutual labels:  grpc, protocol-buffers
Assistant Relay
A Node.js server that allows for sending commands to Google Home/Assistant from endpoints
Stars: ✭ 638 (+1103.77%)
Mutual labels:  assistant, google-assistant
Startup Os
Working examples of Google's Open Source stack and deployment to the cloud.
Stars: ✭ 564 (+964.15%)
Mutual labels:  grpc, protocol-buffers
Protoreflect
Reflection (Rich Descriptors) for Go Protocol Buffers
Stars: ✭ 651 (+1128.3%)
Mutual labels:  grpc, protocol-buffers
aip-go
Go SDK for implementing resource-oriented gRPC APIs.
Stars: ✭ 47 (-11.32%)
Mutual labels:  protocol-buffers, grpc
Bitcoin Info Action
App for the google assistant that give you information on bitcoin (e.g. price, market cap etc')
Stars: ✭ 45 (-15.09%)
Mutual labels:  assistant, google
dalal-street-server
Server for Pragyan's Dalal Street
Stars: ✭ 65 (+22.64%)
Mutual labels:  protocol-buffers, grpc
Alexa Assistant
Implementation of the Google Assistant SDK as an Alexa skill
Stars: ✭ 422 (+696.23%)
Mutual labels:  google-assistant, protocol-buffers
grpc-chat
Simple Chat Server/Client implemented with gRPC
Stars: ✭ 107 (+101.89%)
Mutual labels:  protocol-buffers, grpc
Athena
A free and open source replacement for Google Assistant on Android devices, meant to integrate with the Sapphire Framework. It contains both speech-to-text and text-to-speech services. It does not require Google services or network connectivity
Stars: ✭ 73 (+37.74%)
Mutual labels:  assistant, google-assistant
Assistantcomputercontrol
Control your computer with your Google Home or Amazon Alexa assistant!
Stars: ✭ 554 (+945.28%)
Mutual labels:  assistant, google-assistant

Assistant-Java

Goal

A simple client - demo project for the Google Assistant SDK.

This project was built and tested on a Mac.

Version

This README file is written for the latest version. Checkout the project at the desired version if you want to get the associated README.

  • v0.2.0 : Released on 09/01/2018 : Works with the Google Assistant SDK alpha2. This version allows you to use the Assistant SDK with the new GRPC binding but doesn't implements the new features from the alpha2 yet (as Device Actions).
  • v0.1.0 : Released on 01/05/2017 : Works with the Google Assistant SDK alpha1

Configuration

The project use TypeSafe config for the configuration. The main configuration file is src/main/resources/reference.conf

The project use slf4j and log4j2 for logging. You can configure the logger with the log4j2.xml file in the resources folder.

To authenticate the requests to API, the Google Assistant SDK use the oAuth2 protocol. As specified on this page, you must generate a client Id and a client secret for the application. Next you must provide theses values (id and secret) in the reference.conf file.

Since the alpha2 version of the SDK, the API must register a device model and a device instance to use the SDK. See the documentation for more information here. The API handles this registration but you must provide in the reference.conf the id of the project you created during the previous step (to get your oAuth2 credentials). Set this value in the projectId field under deviceRegister in the reference.conf file.

The project use generated bindings (package com.google.assistant.embedded.v1alpha2) from Google Apis (repository in References / Links section). If you want to update theses files, you can follow this guide

Audio / Text - Input / Output

In the reference.conf file, you can choose if you want to make your request with your voice or by entering text (parameter inputMode). You can also choose if you want to play the response in audio with the outputAudio parameter.

Usage

The first time you start the application, you must authorize the application via the oAuth2 protocol. You must copy and paste the authorization code from your browser in your terminal.

The application will register a device model and a device instance with your project id (see the configuration part if you haven't set your project id). This information will be persisted in the device_model.json and device_instance.json files.

Next you can talk and hit enter to send a request to the API. You will receive a response and send another request if you want.

The application will store your oAuth2 credentials in a file so you will not have to authorize the application each time your run it.

References / Links

Feel free to give me some feedback or ask questions if you have any.

Youtube Demo Video

Youtube Video Demo

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