Ubuntu 中的 C/C++ 插座,用于接收来自 Android 麦克风输入的音频流
C/C++ socket in Ubuntu for receiving audio stream from Android microphone input
将语音从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.将此结果流式传输回安卓设备。
我是网络编程的新手,我尝试了许多教程,例如:
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
他们似乎都不适合这项任务。所以:
如何在 C/C++ 中管理音频流。
然后以什么格式的流可用于进一步处理?
任何帮助将不胜感激。谢谢。
你可以看看QAudioOutput。在这个问题中,您可以阅读如何使用UDP数据报通过以太网发送音频流:
如何在Qt中通过以太网播放流音频?
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用ndk-build.cmd构建Android.so文件
- Android NDK传感器向事件队列报告奇怪的间隔
- Android P-9.0.0_r53 Logcat主缓冲区超出定义大小
- OpenCV Android C++ imwrite not found
- Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- Android Studio 中带有静态库的原生C++代码
- 如何在 Android Studio 4 中编译 C/C++ 原生代码
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- Android 在编译二进制文件时重建静态库
- 我只想在Android 4.4中使用C++11库
- 无法将标准库导入本机 android 项目中的头文件
- Android Java USB for native cpp
- 来自 Android 应用程序内部的 boost 类型的 boost::wrapexcept<boost::system::system_error> 的未捕获异常
- Android Studio:如何在build.gradle中定义自定义宏(针对不同的构建变体),并让原生C / C++
- 在Android原生C++中使用Facemark opencv contrib
- 最小的CMake构建为Android
- 如何使用Android的双簧管/ AAudio从多个麦克风读取数据
- Ubuntu 中的 C/C++ 插座,用于接收来自 Android 麦克风输入的音频流