将语音从Android手机传输到服务器进行音频分析似乎并不容易。
Android:
在android中,audiorecorder提供了一个很好的API,我从实时android音频流到服务器,将麦克风输入流到任何服务器。
输出基本上由以下几行生成:
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中还找不到一个合适的工具来使用该流作为输入。是否有类似于socket connection的麦克风模拟器??)
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
而且它们似乎都不适合这项任务。所以:
>
如何在C/C中管理音频流。
然后,流以何种格式可供进一步处理?
任何帮助都会非常感激。谢谢。
你可以看看QAudioOutput。在这个问题中,您可以阅读如何使用UDP数据包通过以太网发送音频流:
如何在Qt中通过以太网播放流媒体音频?
问题内容: 我需要使用套接字从C ++客户端到Java服务器接收包含浮点数的数组或类。但是InputStreamReader没正确。任何原因。任何更简单的建议将不胜感激。谢谢。 Java服务器代码 我将那些浮点数存储在名为“值”的类中。但是我得到的价值是垃圾。我在发送前检查C ++代码中的值,它们看起来不错。不知道哪里出了问题。请帮忙…!! 问题答案: 我建议你试试
问题内容: 我正在寻找一种将文件中的音频数据馈送到麦克风的方法,因此,当第三方应用程序(例如 arecord 或Chromium的“按语音搜索”功能)使用麦克风进行音频输入时,它们会从文件中接收音频数据代替。 这是我的情况 :我编写的一个应用程序记录了来自麦克风的音频数据(使用ALSA)并将其保存到文件(audioFile0.raw)中。在将来的某个未知时间点,某些未知的第三方应用程序(例如,我没
根据官方文件 Android 10 (API level 29)和更高版本采用了一种优先级方案,可以在应用程序运行时在它们之间切换输入音频流。在大多数情况下,如果一个新的应用程序获得了音频输入,以前捕获的应用程序会继续运行,但会收到静音。在某些情况下,系统可以继续向两个应用程序发送音频。下面解释了各种共享场景。 除某些特殊情况外,应用程序之间不共享音频。 但是我看到许多应用程序共享音频输入,而没有
我正在使用语音识别应用程序。蓝牙耳机成功连接到我的android设备后,我想在内置麦克风和耳机麦克风之间自由切换音频输入,如何做到?
在遵循类似的教程之后,我正在使用MediaRecorder类用相机录制视频 http://androidcookbook.com/Recipe.seam;jsessionid=40151FCD26222877E151C3EEFB406EED?recipeId=1375 我希望在录音时能够使麦克风静音/取消静音。怎么可能呢? 我正在开始设置音频源 但是如果我想在某个时候录制没有声音的音乐呢?
我在 C#.net 中使用 UDP 异步套接字,我想让服务器和客户端在不同的端口进行通信以进行发送和接收, 服务器使用端口 A 发送到客户端,从具有端口 B 的客户端接收 客户端从具有端口 A 的服务器接收数据,并将数据发送到具有端口 B 的服务器 可能吗??