As Google states in its blog, “Spatial audio is a key element for an immersive virtual reality (VR) experience. By bringing spatial audio to the web, the browser can be transformed into a complete VR media player with incredible reach and engagement. That’s why the Chrome WebAudio team has created and is releasing the Omnitone project, an open source spatial audio renderer with cross-browser support.”
Google also says: “Our challenge was to introduce the audio spatialization technique called ambisonics so the user can hear the full-sphere surround sound on the browser. In order to achieve this, we implemented the ambisonic decoding with binaural rendering using web technology. There are several paths for introducing a new feature into the web platform, but we chose to use only the Web Audio API. In doing so, we can reach a larger audience with this cross-browser technology, and we can also avoid the lengthy standardization process for introducing a new Web Audio component. This is possible because the Web Audio API provides all the necessary building blocks for this audio spatialization technique.”
To achieve this, the development team working for Google, headed by Hongchan Choi and Raymond Toy, is using the AmbiX recording format, which is the target of the Omnitone decoder, containing 4 channels of audio that are encoded using ambisonics, which can then be decoded into an arbitrary speaker setup. As they explain in Google’s blog, “Instead of the actual speaker array, Omnitone uses 8 virtual speakers based on an the head-related transfer function (HRTF) convolution to render the final audio stream binaurally. This binaurally-rendered audio can convey a sense of space when it is heard through headphones.”
“The beauty of this mechanism lies in the sound-field rotation applied to the incoming spatial audio stream. The orientation sensor of a VR headset or a smartphone can be linked to Omnitone’s decoder to seamlessly rotate the entire sound field. The rest of the spatialization process will be handled automatically by Omnitone.” A live demo can be found at the project landing page.
Of course, as the announcement clearly states, the purpose is to directly link any research being done in this field directly with Google’s business of selling virtual reality (VR) goggles or other goggle-related potential business. As they state, “Throughout the project, we worked closely with the Google VR team for their VR audio expertise. Not only was their knowledge on the spatial audio a tremendous help for the project, but the collaboration also ensured identical audio spatialization across all of Google’s VR applications – both on the web and Android (e.g. Google VR SDK, YouTube Android app). The Spatial Media Specification and HRTF sets are great examples of the Google VR team’s efforts, and Omnitone is built on top of this specification and HRTF sets.”
“With emerging web-based VR projects like WebVR, Omnitone’s audio spatialization can play a critical role in a more immersive VR experience on the web. Web-based VR applications will also benefit from high-quality streaming spatial audio, as the Chrome Media team has recently added FOA compression to the open source audio codec Opus. More exciting things like VR view integration, higher-order ambisonics and mobile web support will also be coming soon to Omnitone,” they add.
I guess this could be good news for anyone that just likes to experiment with these things for fun and it might eventually lead to more people actually experiencing spatial audio content in a binaural format. Of course, those companies investing in research in this area and actually building a business might not feel so enthusiastic with this announcement. Like many others before, they’ve just been googled.
But it’s all for the common good, as anything Google-related is. “We look forward to seeing what people do with Omnitone now that it’s open source. Feel free to reach out to us or leave a comment with your thoughts and feedback on the issue tracker on GitHub,” they earnestly appeal.
http://googlechrome.github.io/omnitone/#home