How to use HTML5 Web Audio API to record my voice

Saurabh picture Saurabh · Mar 9, 2013 · Viewed 6.9k times · Source

I'm looking for a way to record my voice and - according to the recorded voice - move an animation towards left or right.

I heard HTML5 has an Audio API through which you can record your voice, but I have no idea how to do that.

I will be thankful to everyone who can help me or come up with some solutions, suggestions, code or guidelines to resolve this issue.

Answer

kr1 picture kr1 · Mar 9, 2013

on webkit-browsers you can use the get user media api with webkitGetUserMedia - like demonstrated on html5rocks.
if you want to use your voice to create javascript events (e.g. to control objects on the screen) you would have to analyze the incoming sound (e.g. high frequency for event1 - low frequency for event2, speech analysis is much more complicated, see below)

alternatively, there is chrome's 'x-webkit-speech' speech recognition, (see an example here), which will analyze speech on google's servers and is therefore probably too slow for real-time control.

I don't know of any real-time speech analysis in the browser, but would be happy to find a (even very basic) possibility.

edit: adds some code (adapted from here)

<html>
  <head>
  </head
  <body>
    <input type="search" id="mike" x-webkit-speech>
    <script type="text/javascript">
      var mike = document.getElementById('mike');
      mike.onwebkitspeechchange = function(e) {
        console.log(e); // SpeechInputEvent
        console.log(e.results[0].utterance);
      };
    </script>
  </body>
</html>