You have chosen to sponsor your bid up to a maximum amount of .
This task involves developing a recorder web application, mostly front end. It records microphone input, and sends it to the server. Related knowledges are: Web Audio API, getUserMedia(), WebRTC, which are all part of HTML5 specification. Please pay attention to the description because the requirements are very specific.
=== [ Web Audio API Recorder ] ===
All core functions required by this task are actually already covered by open source projects, see below:
1. The client must send WAVE in 16bit mono 16khz format. [Recorder.js] can only send in output format, which is usually 16bit stereo 44khz, due to reasons discussed in https://github.com/mattdiamond/Recorderjs/issues/11 . Therefore, one must utilize the resample function in [XAudioJS].
2. Before sending the WAVE to the server, the client must compress it using zlib. To do this, you'll need [zlib.js]. Decompressing at server using PHP is easier.
The client should send sound data only, and not the WAVE header. The PHP script should be responsible for constructing the wave header file, and because the format is fixed, it's easy. A reference of such function can be found at https://code.google.com/p/wami-recorder/ .
Because the client sends 1 second data in 1 second interval, the client will make 1 HTTP POST request per second. Therefore it sends in segments. This task does not require a fully fledged PHP upload script. For handling multiple segment, synchronizing, and reconstructing WAVE from segments, just find the easiest way you can handle. The output file name can be fixed. As long as a single run goes well, you are done.
The target platform of this application is the current stable version of Chrome. You'll need to visit chrome://flags and enable 'Web Audio Input' in order for any of these to work.
Thank you for reading the descriptions. And remember once you bid, I'll run a small interview with you to determine whether this can be done and your confidence and capabilities.
Additional Project Description:
02/24/2013 at 16:08 GMT
It's important that you review the 3 open source projects I provided. Because the task really involves using them together.