реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
DpInRock
сообщение Nov 8 2012, 06:23
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
Частота, в моём случае 10кГц.

И что? Причем тут частота. Если ваш звук длиной в 1 час, то вы потеряете 1 миллисекунду.
А если не будете вообще убирать заголовок, то добавите в начало своего трека 4 миллисекундный относительно случайный шум, который без специального навыка и не услышать.
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Значит убираем не 64, а 44 байта и получаем строго данные.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
ReAl
сообщение Nov 8 2012, 11:37
Сообщение #17


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(TigerSHARC @ Sep 13 2012, 13:29) *
Имеется файл в PCM формате. необходимо "вытащить" из него только полезные данные и представить в виде массива.
Первое что требуется - человеческое описание PCM формата (карта байтов в файле).
Ну и может у кого наработки есть... rolleyes.gif
скрипач формат не нужен. Нужен «швейцарский нож для обработки звука»
http://electronix.ru/forum/index.php?showtopic=67058


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 8 2012, 11:50
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(toweroff @ Nov 7 2012, 18:58) *
TigerSHARC, для получения массива нужно:

1. Sound Forge
2. 1 мин свободного времени

Открываем файл, сохраняем его в RAW. Все!
Вам это уже говорили, а вы не перестаете ходить по граблям

Я понимаю.
Но мне нужно в своей программе это осуществить. Поэтому я и спрашивал о структуре формата PCM.
Вопрос решён. Спасибо.

Цитата(DpInRock @ Nov 8 2012, 10:23) *
И что? Причем тут частота. Если ваш звук длиной в 1 час, то вы потеряете 1 миллисекунду.
А если не будете вообще убирать заголовок, то добавите в начало своего трека 4 миллисекундный относительно случайный шум, который без специального навыка и не услышать.
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Значит убираем не 64, а 44 байта и получаем строго данные.

вы меня не поняли. В виде PCM записана не звуковая информация, а осциллограмма переходного процесса. Терять данные нельзя. Вообще.

Не спрашивайте почему выбран PCM-формат.
Go to the top of the page
 
+Quote Post
ae_
сообщение Nov 9 2012, 00:55
Сообщение #19


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(TigerSHARC @ Nov 8 2012, 20:50) *
...Но мне нужно в своей программе это осуществить. Поэтому я и спрашивал о структуре формата PCM...

Вам ответил blackfin 2 дня назад, по второй ссылке описание заголовка PCM формата, те самые 44 байта.
Что-то было непонятно или Вы ответы не читаете?

Цитата(blackfin @ Nov 6 2012, 15:26) *
Краткое описание есть в Wiki и в WAVE PCM.

Go to the top of the page
 
+Quote Post
Sirko
сообщение Nov 11 2012, 09:46
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



CODE
// Структура, описывающая заголовок WAV файла.
struct WAVHEADER
{
// WAV-формат начинается с RIFF-заголовка:

// Содержит символы "RIFF" в ASCII кодировке
// (0x52494646 в big-endian представлении)
char chunkId[4];

// 36 + subchunk2Size, или более точно:
// 4 + (8 + subchunk1Size) + (8 + subchunk2Size)
// Это оставшийся размер цепочки, начиная с этой позиции.
// Иначе говоря, это размер файла - 8, то есть,
// исключены поля chunkId и chunkSize.
unsigned long chunkSize;

// Содержит символы "WAVE"
// (0x57415645 в big-endian представлении)
char format[4];

// Формат "WAVE" состоит из двух подцепочек: "fmt " и "data":
// Подцепочка "fmt " описывает формат звуковых данных:

// Содержит символы "fmt "
// (0x666d7420 в big-endian представлении)
char subchunk1Id[4];

// 16 для формата PCM.
// Это оставшийся размер подцепочки, начиная с этой позиции.
unsigned long subchunk1Size;

// Аудио формат, полный список можно получить здесь http://audiocoding.ru/wav_formats.txt
// Для PCM = 1 (то есть, Линейное квантование).
// Значения, отличающиеся от 1, обозначают некоторый формат сжатия.
unsigned short audioFormat;

// Количество каналов. Моно = 1, Стерео = 2 и т.д.
unsigned short numChannels;

// Частота дискретизации. 8000 Гц, 44100 Гц и т.д.
unsigned long sampleRate;

// sampleRate * numChannels * bitsPerSample/8
unsigned long byteRate;

// numChannels * bitsPerSample/8
// Количество байт для одного сэмпла, включая все каналы.
unsigned short blockAlign;

// Так называемая "глубиная" или точность звучания. 8 бит, 16 бит и т.д.
unsigned short bitsPerSample;

// Подцепочка "data" содержит аудио-данные и их размер.

// Содержит символы "data"
// (0x64617461 в big-endian представлении)
char subchunk2Id[4];

// numSamples * numChannels * bitsPerSample/8
// Количество байт в области данных.
unsigned long subchunk2Size;

// Далее следуют непосредственно Wav данные.
};


Взято отсюда

Кстати, в одном из журналов Радио (за прошлое тысячилетие кажись), была статья про WAV и схема на трех микрухах, одна из которых - EEPROMка, другая - MAXim (фильтр после шима). Там автор хорошо описал формат.

Сообщение отредактировал Sirko - Nov 11 2012, 09:54
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01497 секунд с 7
ELECTRONIX ©2004-2016