2013-03-24 2 views
0

Я пишу программу (C++, vs2010, win7), которая записывает аудио в wav-файл. Когда я пытаюсь услышать звук, у него много белого шума. Я попытался открыть файл с другой программой, которую я написал. Единственное, что эта программа делает:Удаление шума в файле Wav

Char buffer[8000*60*2] = {} 
File *wav, *out 
Wav = fopen ("raw", "r+") 
Out = fopen("out", "a+") 
fread(buffer, sizeof (char) *8000*60*2,1,wav) 
fwrite(buffer, sizeof (char) *8000*60*2,1,out) 
fclose (wav) 
fclose (out) 

После того как я передавать необработанные данные через эту программу я могу услышать небольшую часть исходного файла WAV без шума (я открыть это дерзость, как необработанные данные). Моя проблема заключается в том, что я ничего не изменяю в данных, просто пишу это снова и как волшебство, которое я могу слышать ясно. Что мне не хватает? Я не изменяю данные. Когда я пишу данные, я пишу его как короткий var. данные короткие fwrite (данные, 1024,1, wav)

+0

Вы понимаете, что добавляете этот выходной файл, а не переписываете его? –

+0

Да, это новый файл. Я могу изменить его на w +, но он дает тот же результат. – David

+0

Так вы получаете тот же эффект, если используете только Проводник для копирования файла? –

ответ

0

При записи WAVE-файла многие вещи могут вызвать у него шум. Вот несколько вещей, которые вы должны искать:

укупорки значения

Файл ваниль WAVE имеет значение 16 бит данных (или два значения, если это стерео), и поэтому вы должны сделать убедитесь, что ВСЕ ваши значения находятся в диапазоне (32768, -32768), если вы увеличиваете значения, и они превышают этот предел, тогда вы получите случайное значение *, и, таким образом, при записи файла будет возникать шум.

Записи в двоичном

Как отметил Роджер на комментариях оригинального вопроса, важно, что вы пишете в двоичной системе, так как если вы попытаетесь записать в файл со стандартным «г» вы будете просто получить много белого шума.

Отсутствующие заголовки

Иногда, если вы забыли заголовок вы также можете получить шум в выходном файле WAVE.

Надеюсь, это поможет.

Смежные вопросы