Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Matlab中将原始字节转换为音频_Android_Matlab_Sockets_Audio_Tcp - Fatal编程技术网

Android 在Matlab中将原始字节转换为音频

Android 在Matlab中将原始字节转换为音频,android,matlab,sockets,audio,tcp,Android,Matlab,Sockets,Audio,Tcp,问题是:我通过tcp套接字从android向matlab发送了一个10Kb的小音频文件。matlab脚本获取文件,但android的outputstream发送原始字节。如何在matlab中重建原始音频文件?这里的问题是变量类型 通过TCP,音频数据最有可能以16int或16uint的形式发送,假设存在将16int或16uint正确转换为字节的函数/方法,以便写入要通过TCP发送的缓冲区 首先,您必须检查: 发送数据的端点 android中音频数据的类型很可能是16int,但请检查一下以防万一

问题是:我通过tcp套接字从android向matlab发送了一个10Kb的小音频文件。matlab脚本获取文件,但android的outputstream发送原始字节。如何在matlab中重建原始音频文件?

这里的问题是变量类型

通过TCP,音频数据最有可能以16int或16uint的形式发送,假设存在将16int或16uint正确转换为字节的函数/方法,以便写入要通过TCP发送的缓冲区

首先,您必须检查:

发送数据的端点 android中音频数据的类型很可能是16int,但请检查一下以防万一 然后,您必须从文件中读取这些数据,并将其转换为双倍。为此,有相当多的例子。一个最简单的方法是,在使用MATLAB的double函数将值转换为double之后,将值映射到一个新的范围


对于映射值,您需要指定文件格式-float或int?每个样本有多少位?抽样率是多少?任何信息都有帮助这里是详细信息:OutputFormat=MPEG_4 AudioEncoder=AAC比特率=16采样率=44100我正在用MediaRecorder录制声音请注意重新发布,但我在编辑帖子时遇到了问题。我必须对音频进行fft/xcross运算,所以我认为它必须是浮点运算!抱歉,我不熟悉android sdk,所以您仍然需要确定输出是否为原始音频样本,在这种情况下,您只需在matlab中将其读取为16位有符号整数,或者是AAC文件格式,在这种情况下,您需要从matlab调用一些第三方音频转换器,例如ffmpeg。我将看到endianess,但是我很确定android发送的字节是8int!我的意思是,你必须检查android的音频API有哪些值作为输出。它们是16uint吗?16int?我已经检查了android的API,没有提到输出值的类型。好吧,我可以试试16int,如果不行,就试试16uint。endiannes应该是最大的一个。现在,我如何继续?谢谢你的帮助!