Разъем C / C ++ в Ubuntu для приема аудиопотока с микрофонного входа Android

0

Потоковая речь с телефона Android на сервер для анализа звука не кажется легкой задачей.

Android:

В android аудиокорректор предоставляет хороший API, который я адаптировал из Stream Live Android Audio на сервер для потокового ввода микрофона на любой сервер.

Выходной сигнал генерируется в основном несколькими строками:

DatagramSocket socket = new DatagramSocket();
final InetAddress destination = InetAddress.getByName("1.1.1.1");
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,channelConfig,
audioFormat,minBufSize*10);

while(rec == true) {
            minBufSize = recorder.read(buffer, 0, buffer.length);
            packet = new DatagramPacket (buffer,buffer.length,destination,port);
            socket.send(packet);
 }

Выполнение работы сокета (которое должно быть в C/C++), тем не менее, дает мне головную боль. Обычно я хочу сделать три шага на моем сервере Ubuntu:

1. Получите аудиопоток (я локально использовал Portaudio для записи звука, я не смог найти подходящий инструмент еще в C/C++, который использовал бы поток в качестве входа. Есть ли что-то вроде эмулятора микрофона из сокета??)

2. Проанализируйте поток и дайте результат как jsonstring (или просто текстовую строку для первого

3. Поверните этот результат обратно на устройство Android.

Я новичок в сетевом программировании, и я пробовал много учебников, таких как:

http://codebase.eu/tutorial/linux-socket-programming-c/

http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html

http://www.the-tech-tutorial.com/?p=1555

И ни один из них не подходит для этой задачи. Так:

  1. Как управлять потоками аудио в C/C++.

  2. И в каком формате поток доступен для дальнейшей обработки?

Любая помощь могла бы быть полезна. Благодарю.

  • 1
    Как кажется, неинтуитивно, вам нужно удалить запрос библиотеки, или кто-то, вероятно, закроет ваш вопрос. Что касается остального, удалось ли вам установить соединение между устройством Android и вашим ПК? Два инструмента, которые вы можете найти полезными для передачи звука во время тестирования: netcat и aplay / arecord .
Теги:
audio
sockets

1 ответ

1
Лучший ответ

Вы можете взглянуть на QAudioOutput. В этом вопросе вы можете прочитать, как отправлять аудиопоток через ethernet с дейтаграммами UDP:

Как я могу воспроизводить потоковое аудио через Ethernet в Qt?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню