我有一个涉及.wav文件分析和输出的程序。它与来自cds或互联网的曲目完美搭配但是我使用matlab生成了一系列纯正弦波音调进行分析,它给出了标题中显示的错误。 matlab文件在iTunes中运行正常,所以我不确定为什么我的程序有问题。
public static void signalToFile(File f) throws IOException, UnsupportedAudioFileException
{
AudioInputStream inputStream = AudioSystem.getAudioInputStream(f);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
String newFile = f.getName().replace(".wav", ".txt");
System.out.println("Beginning file write: " + newFile + " (soundUtilities)");
BufferedWriter fileOut = new BufferedWriter(new FileWriter(new File("src/examples/Media/" + newFile)));
System.out.println("Ending file write: " + newFile + " (soundUtilities)");
System.out.println(buffer.length);
ByteBuffer myBB = ByteBuffer.wrap(buffer);
myBB.order(ByteOrder.LITTLE_ENDIAN);
while(myBB.remaining() > 1)
{
short current = myBB.getShort();
fileOut.write(String.valueOf(current));
fileOut.newLine();
}
fileOut.flush();
fileOut.close();
inputStream.close();
}
此方法的第一行是导致错误的原因。该方法涉及文件到txt文件的信号信息。任何帮助将不胜感激。
以下是我用来创建wav文件的一小部分matlab代码:
x13 = sin(2*pi*220*t1); % A3 long sample
x13envelope = [1:-1/length(x13):1/length(x13)];
x13full = x13.*x13envelope;
totalSound = [x1full x2full x3full x4full x5full x6full x7full x8full x9full x10full x11full x12full x13full]; % combines the notes
wavwrite(totalSound, fs, 32, 'TestTune');
“totalSound”数组中的每个条目都代表一个音符
答案 0 :(得分:1)
WAV files有一个标题。您似乎没有创建该标头。您似乎创建的是原始PCM文件。
答案 1 :(得分:0)
我解决了这个问题“JBoss 4.2和JBoss 7的输出不同 JBoss 4.2: 支持WAVE = true
JBoss 7: 支持WAVE = false“ 另请查看此https://community.jboss.org/message/729654