Я думаю, что то, что вы предлагаете, теоретически выполнимо, но на практике веб-клиенты и стандарты все еще недостаточно развиты. Например, посмотрите этот интересный блог о синтезе звука в JavaScript .
Теперь по теории:
Альтернатива 1: подождите, пока браузеры добавят поддержку формата потокового аудио (обычно аудиотег в настоящее время поддерживает WAV, OGG и / или MP3).
Альтернатива 2: реализовать потоковую передачу самостоятельно ...
Что касается серверной части (функция ввода звука с микрофона), я предполагаю, что вы можете делать практически все, что захотите. Например, должна быть возможность на самом деле не подключать микрофон к серверу, а позволить серверу запустить какой-то процесс транскодера из другого источника / сервера. Тогда у вас может быть приложение CGI / FastCGI, к которому подключаются веб-клиенты для получения последнего окна потока (часть потока, скажем, 1-5 секунд?).
На стороне веб-клиента вы, вероятно, можете использовать звуковой тег и управлять им из JavaScript, чтобы периодически обновлять его новыми окнами потоков. Очередь аудиосэмплов не поддерживается, поэтому вам придется придумать какой-то специальный механизм синхронизации. Одним из решений может быть использование двух одновременных аудиосэмплов, которые постепенно затухают (таким образом сводя к минимуму щелчки и всплески, возникающие из-за неточной синхронизации).