我想从一个现有的wav文件中读取每个字符,并将其分配到一定的频率。
我特别想通过声音把WAV文件从一个电话传输到另一个像"Chirp“android应用程序。
为此,我需要将所有数据映射到特定的频率,并播放生成的音调,以便其他手机可以解码它并重建wav文件。
看看这个: chirp.io/tech
例如,wave文件的第一行是:
52 49 46 46 E0.
我的想法是:
5->100 2->200 4->300.
它们是在不改变数据的情况下分裂它们的一种方法吗?
我想我应该提到我的wav文件被格式化为:
static int sampleRate=44100;
static int numSample=duration*sampleRate;
long mySubChunk1Size = 16;
static short myBitsPerSample= 16;
int myFormat = 1;
static int myChannels = 1;
long myByteRate = sampleRate * myChannels * myBitsPerSample/8;
int myBlockAlign = myChannels * myBitsPerSample/8;
long myChunk2Size = generatedSnd.length* myChannels * myBitsPerSample/8;
long myChunkSize = 36 + myChunk2Size;发布于 2014-05-14 12:30:12
你想做的方式很简单.天真。
我告诉你为什么:
现在,一种可能的方法是:
我将实现一个算法,比如(byte * 32) + 440,它给了我:
所有字节都将被“编码”成可听频谱中的频率。
与前面提到的"Chirp“方法中使用的方法非常相似。
我不需要告诉它,0是440赫兹(或任何其他关联),算法为我做的。
此外,您可以输出(并接收)任何类型的文件。还不错。
编辑
由于媒体(声学扬声器/麦克风)仅限于低频范围(可听到的声音),所以必须使用可听的声音。
如果你使用无线电传输,那么你也可以使用高频。
因为它真的取决于建筑质量。我建议每个扬声器/麦克风联轴器都能处理一个“安全”范围。
关于可听音调的参考:frequency
https://stackoverflow.com/questions/23653448
复制相似问题