Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 2 wav 
:(
    Опции темы
Гость_Intro
Дата 4.8.2004, 18:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я разрабатываю проект сравнения двух wav файлов. Открываю wav файлы с помощью обычных потоков файлового ввода-вывода(возможно кому-то это покажется топорным ). Моя начальная цель програмно вычислить то место, где у wav начинается основная часть(то есть звук). Зачем это нужно? Чтобы потом написать программу сравнивающую звук обоих файлов и выводящую процентное соотношение похожести.
Сама программа написана и работает, но основная часть, то есть функция сравнения не коректно выводит результаты! --- при компиляции ошибок замечено не было.
P.S. ... Результат сравнения двух одинаковых файлов : 268 совпадений при размерах файлов 7 мегабайт


Вот функция :

void sravn_file(ifstream& wave1in, ifstream& wave2in, ofstream& result)
{
char w1,w2;
while(! wave1in.eof() || ! wave2in.eof())
{
wave1in.get(w1);
wave2in.get(w2);
if (w1 == w2)
{
i++; //это переменная-счётчик обьявленная как глобальная
result.put(w2);
cout << w2;
wave1in.get(w1);
wave2in.get(w2);
}
}
}

//Не судите меня строго я только начинающий.
  Вверх
p0s0l
Дата 4.8.2004, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 2
Всего: 112



Зачем два последних get'а ?
Какого типа у тебя переменная i ? Может просто происходит переполнение ?...



--------------------
С уважением, г-н Посол.
PM   Вверх
lynx_916
Дата 4.8.2004, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



попробуй старыую ф-цию read().
читай за раз байт эдак 10.
и помещай их куда-то.
потом сравни и выбрось.



--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
Гость_Intro
Дата 5.8.2004, 05:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вообще по хорошему надо было сделать цикл do while... мне надо совместить и условие о конечности входящих файловых потоках и условие обязательного предварительного сравнивания. Именно поэтому из-за своей топорности код выглядит нелепым smile.gif)) I переменная типа int.

............................................................................................................

А про read() по-подробней... Дело в том, что я встретился с проблеммой когда даже ну очень похожие по звуку файлы различаются по-байтово.
Эсть ли как какая-то уловка, чтобы пропускать некоторые байты в группе входящих по файловому потоку байтов?

Пожалуйста напишите какой заголовочный файл нужен для read() и возможные параметры этой функции.

Заранее благодарен.
  Вверх
C/L
Дата 7.8.2004, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 31.7.2004
Где: Самара

Репутация: 1
Всего: 1



Цитата
P.S. ... Результат сравнения двух одинаковых файлов : 268 совпадений при размерах файлов 7 мегабайт

Сравнивались копии одного и того же файла или файлы с похожим звуком?
Сравнивать похожие звуки по байтам думаю мало что даст, совпадение будет только у копии одного и тогоже файла. Сравнивать нужно спектры звуков или что-то более сложное.
Если хочешь знать где начинается звук - формат файлов WAV в инете думаю найти несложно.
PM MAIL WWW ICQ   Вверх
C/L
Дата 7.8.2004, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 31.7.2004
Где: Самара

Репутация: 1
Всего: 1



PM MAIL WWW ICQ   Вверх
C/L
Дата 7.8.2004, 04:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 31.7.2004
Где: Самара

Репутация: 1
Всего: 1



PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.