All Projects → diglungdig → QuietVR

diglungdig / QuietVR

Licence: MIT license
A Quiet Place in VR: Generate any 3D object with your voice. It's magic!

Programming Languages

C#
18002 projects
ShaderLab
938 projects
ASP.NET
160 projects
HLSL
714 projects

Projects that are alternatives of or similar to QuietVR

Voice datasets
🔊 A comprehensive list of open-source datasets for voice and sound computing (50+ datasets).
Stars: ✭ 494 (+2805.88%)
Mutual labels:  voice, voice-commands, voice-recognition
Hey Athena Client
Your personal voice assistant
Stars: ✭ 336 (+1876.47%)
Mutual labels:  voice, voice-commands, voice-recognition
ultimate-guide-to-voice-assistants
Curation of startups, resources, people, posts etc in the voice-space
Stars: ✭ 55 (+223.53%)
Mutual labels:  voice, voice-commands, voice-recognition
janusweb
An in-browser implementation of JanusVR
Stars: ✭ 145 (+752.94%)
Mutual labels:  vr, vive, oculus-rift
MoonMotion
Moon Motion Toolkit - Free and open source toolkit for VR locomotion
Stars: ✭ 38 (+123.53%)
Mutual labels:  vr, vive, oculus-rift
Voicer
AGI-server voice recognizer for #Asterisk
Stars: ✭ 73 (+329.41%)
Mutual labels:  voice, voice-commands, voice-recognition
React Mic
Record audio from a user's microphone and display a cool visualization.
Stars: ✭ 323 (+1800%)
Mutual labels:  voice, audio-visualizer, voice-recognition
Caster
Dragonfly-Based Voice Programming and Accessibility Toolkit
Stars: ✭ 242 (+1323.53%)
Mutual labels:  voice, voice-commands, voice-recognition
picovoice
The end-to-end platform for building voice products at scale
Stars: ✭ 316 (+1758.82%)
Mutual labels:  voice, voice-commands, voice-recognition
voice gender detection
♂️♀️ Detect a person's gender from a voice file (90.7% +/- 1.3% accuracy).
Stars: ✭ 51 (+200%)
Mutual labels:  voice, voice-commands, voice-recognition
A-Distant-Path
3D multiplayer puzzle game made for Ubisoft's Game Lab Competition
Stars: ✭ 18 (+5.88%)
Mutual labels:  art, unity-3d
Aframe
🅰️ web framework for building virtual reality experiences.
Stars: ✭ 13,428 (+78888.24%)
Mutual labels:  vr, vive
Hover Ui Kit
Create beautiful user interfaces for immersive VR/AR experiences.
Stars: ✭ 662 (+3794.12%)
Mutual labels:  vr, unity-3d
Vrtk
*Beta* - An example of how to use the Tilia packages to create great content with VRTK v4.
Stars: ✭ 3,422 (+20029.41%)
Mutual labels:  vr, oculus-rift
Party Mode
An experimental music visualizer using d3.js and the web audio api.
Stars: ✭ 690 (+3958.82%)
Mutual labels:  art, audio-visualizer
Processing Android
Processing mode and core library to create Android apps with Processing
Stars: ✭ 643 (+3682.35%)
Mutual labels:  art, vr
home-space
Startpage and WebXR home
Stars: ✭ 43 (+152.94%)
Mutual labels:  vr, vive
react-native-spokestack
Spokestack: give your React Native app a voice interface!
Stars: ✭ 53 (+211.76%)
Mutual labels:  voice-commands, voice-recognition
awesome-rhasspy
Carefully curated list of projects and resources for the voice assistant Rhasspy
Stars: ✭ 50 (+194.12%)
Mutual labels:  voice, voice-commands
React Babylonjs
React for Babylon 3D engine
Stars: ✭ 299 (+1658.82%)
Mutual labels:  vr, 3d-models

QuietVR

A quiet place in VR.

QuietVR

Please go to the end of this README for version update logs

Important

As of June 30, Poly was shut down by Google...This means QuietVR can no long talk to Poly's 3d model database. I will be looking at other options.

What is QuietVR

QuietVR is an experimental demo of VR interaction via voice input. It connects audio recognition interfaces with Google’s newly introduced Poly Api. Here you can summon any 3D objects using your voice.

Inspiration and Motivation

The initial thought was to create a simple VR experience where the player is surrounded by blocks and low polygon geometries. After a few iterations of implementation, it eventually turns into VR demo that focuses on audio reactive interaction.

The whole purpose of this project from a development perspective is to implement a harmonic coordination between VR and audio input, creating fun VR gameplay with simple vocal elements.

Installation

Please go to the release page to download the latest version.

https://github.com/diglungdig/QuietVR/releases

Each release contains a VR version that works with HTC Vive/Oculus Rift and a non-VR version that works with normal PC setups.

It's recommended to play in VR.

System Requirement and Specification

Window 10 with GTX 970 or higher.

DirectX 11 or higher required.

VR version works with HTC Vive and Ocules Rift CV1.

Audio recording device is required in order to play QuietVR.

How to Play

Setup

Currently QuietVR can only be run on Windows. MacOS is not supported.

QuietVR uses Windows’ speech recognition feature. To enable it on your OS, go to Speech, inking & typing on your Windows 10 Settings, then turn on speech services and typing suggestions.

It’s better to play this demo in a quiet environment. Otherwise gameplay will most likely be disrupted for game's solely relying on audio input. Make sure you have your audio recording device like microphone or headset set up before start the game.

Game Mechanics

QuietVR currently has two modes. Each of these modes support different kinds of voice input behaviors.

[Search Mode]: Search Mode takes advantage of Windows Speech Recognition feature to communicate with Google’s Poly server. In this mode, you are given the option to request a 3D model via voice command. To initialize requesting process, Make sure you have your environment setup ready(See the above section). Towards your microphone, say “Quiet” Then, say a word representing an object you want to fetch from the server(“Elephant”, “Pizza”, “Book”, etc) If the process succeeds, you should see your object pop in front of you.

[Random Mode]: Random mode is first introduced in QuietVR version 1.0(the OG mode so to speak :D). It uses Keijiro Takahashi’s Lasp((Low-latency Audio Signal Processing plugin for Unity) to give responsive voice feedbacks to the user. In this mode, you are given the option to...yell...as long as you want. An object will be fetched after your voice falls off.

Additional Commends

  1. To exit the game, press ESC on keyboard.

  2. Press Space on keyboard to switch between two modes.

Credits and Acknowledgement

For its use of Google's Poly Api, all of the 3D models appearing in the game are basically from Google's community(Tiltbrush, Google Blocks, etc). The majority of these 3D resources have the Creaive Commons License. Game gives credits to these amazing authors by printing out the credit in the back of the player right after the 3D object appears in front.

QuietVR also relies on the famous Japanese visualization artist and Unity engineer Keijiro Takahashi's Lasp project to update the visual cue when listening to voice input. Lasp's low latency audio processing(less than 16 ms) gives QuietVR its responsiveness and robustness which are much needed in VR environment to create the feeling of realism.

Background Music by Bill Evans - Waltz For Debby

Artistic Design and Code Structure

Artisitic Design

The artistic design of QuietVR follows the code of minimalism.

Shader for generic objects used in the game is a simple vertex color shader.

The post processing techniques that are used in game are from Unity's Post Processing Stack.

Scripts

QuietVR's core behaviors are implemented in Quiet.cs(child class of PolyVRPort.cs), CommandRecognition.cs, and PolyManager.cs.

PolyVRPort.cs is a singleton abstract class set to coordinate between voice responsive interfaces, like Windows Speech and Lasp, and Google's Poly Api. It has serveral abstract functions that are crucial for the process.

Quiet.cs is a derived child class from PolyVRPort.cs. Besides overriding functions from parent class and hooking up interfaces, it also coordinates all the cosmetics and event triggering for the game.

CommandRecognition.cs uses Windows.Speech's KeywordRecognizer and DictationRecognizer to allow for voice command input. The voice command follows the format of "Quiet"(Keyword) + Content(Dictation).

PolyManager.cs, as the name suggests, communicates with Poly Api and gives feedback to PolyVRPort.cs

The visual effect of audio reactive white circle is implemented in VoiceRipple.cs.

These classes can be found in Asset/-Scripts folder.

Note: Quite a lot of these scripts are not well documented. Further documentation will be added as this project gets its update later on.

Limitation, Future Roadmap and Possible Expansion

QuietVR's purpose for now is to become a testground for audio reactive behavior in VR and further related implementation.

The bigger picture might include things like:

  1. Voice recognition with VR(implemented in version 2.0. However I'm thinking about migrating from the sloppy Windows Speech to IBM Speech Sandbox).

  2. Procedural content generation by audio input

  3. Education in VR with voice and audio commends

From a gameplay perspective, the following things might be added with future updates in a long run:

  1. Deeper analysis of audio input for expanding more sorts of audio commends

  2. Instead of pooling 3D objects locally, a dedicated backend server that will allow any third party users to upload their own 3D models and share across the platform.(implemented in version 2.0 via Google Poly)

Idea and advice collected from social media

  1. Scribblenauts

  2. Pictionary

License

QuietVR is an open source project under a MIT license which allows for third party modification and expansion.

Because QuietVR uses Google Poly Api, you need to have a Api key in order to work within the Unity environment. A detailed instruction on how to obtain and insert the key can be found here.

Update Logs

Version 2.02

Updates: 1. Fixed UI bugs

Version 2.01

Updates: 1. New background music by Bill Evans and better VFXs

Version 2.0

Updates: 1. Google Poly Api integration. Program now pulls 3D models at runtime from Google Poly.

2. A new mode "Search Mode" has been added. In this mode, user can use voice recogition to fetch 3D models.

3. A new program logo

4. Various minor comestics updates

Version 1.1

Updates:

1. A countdown timer before each voice input

2. A title text

3. Restrcuturing, redesign and optimization on classes and codes

4. Minor improvements include things like disabling voice input when user is not facing at the indicator

5. Generic shapes in the scene now use a unlit color shader for simplitity

6. Voice input now can generate more special 3D models!

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