Wav файл формата pcm 8000 гц 16 бит моно

Обновлено: 07.07.2024

Коллеги, добрый день, отдали заказ на запись голосового меню в студию записи, они спрашивают какой формат выходного файла выбрать, используем Астериск.

Какой предложенный формат выбрать?

Выберите только один нужный Вам формат:

№ 1. wav, полное качество (44 000 Гц)?

№ 2. wav, 8000 Гц, 16 бит, моно?

№ 3. wav, A-low CCITT 8000 Гц, моно? Или wav, Ulaw CCITT 8000 Гц, моно?

№ 4. A-low CCITT 8000 Гц, моно? Или Ulaw CCITT 8000 Гц, моно?

№ 5. mp3 (полное качество)?

2 Ответа

Формат файлов астериска

Если хоть чтото не выполняется - кодировка не pcm, а gsm или stereo - работать перестает.

Записывать надо сразу в этом формате. При даунсемпле 44кгц->8кгц теряется качество.

Также будет работать вариант alaw/ulaw 8khz, в этом случае вы записываете файл как filename.ulaw

Средняя пауза между предложениями для русского - 1 секунда. Но это зависит оттемпа речи диктора. Соответсвенно музыка должна играть 1 секунду после конца предложения, плавно затухая в случае последнего голосового файла или с той же громкостью для промежуточного.

Comments

То, что студия использует слова "полное качество" обычно говорит о том, что они уже записали в 44 кгц, тоесть - надо ПЕРЕЗАПИСАТЬ. Еще раз. Downsampling с "полного качества" 44кгц в 8кгц СИЛЬНО ухудшает общее качество записи, поскольку 44 на 8 нацело не делится.

Я бы рекомендовал вот этот. wav, 8000 Гц, 16 бит, моно.

Comments

amonra, спасибо, то есть его можно сразу кинуть в папку астериск и прослушать - должно работать ?

exten => 000,1,Background(filename) - по такому диалплану позвонив на номер 000 можно прослушать файл filename.wav.

Если голый астериск, то да. Ежели freepbx то лучше через recordings добавить.

№ 1. wav, полное качество (44 000 Гц) берите этот . из большого всегда можно сделать маленькое , вот наоборот - ОООЧень тяжело.

А еще спрашивают из студии звукозаписи: Cколько секунд звучит музыка после окончания слов диктора? Что ответить, как по вашему опыту.

Представляем вашему вниманию статью с подробным разбором заголовка WAV-файла и его структуры.

Теория

Итак, рассмотрим самый обычный WAV файл (Windows PCM). Он представляет собой две, четко делящиеся, области. Одна из них — заголовок файла, другая — область данных. В заголовке файла хранится информация о:

  • Размере файла.
  • Количестве каналов.
  • Частоте дискретизации.
  • Количестве бит в сэмпле (эту величину ещё называют глубиной звучания).

Но для большего понимания смысла величин в заголовке следует ещё рассказать об области данных и оцифровке звука. Звук состоит из колебаний, которые при оцифровке приобретают ступенчатый вид. Этот вид обусловлен тем, что компьютер может воспроизводить в любой короткий промежуток времени звук определенной амплитуды (громкости) и этот короткий момент далеко не бесконечно короткий. Продолжительность этого промежутка и определяет частота дискретизации. Например, у нас файл с частотой дискретизации 44.1 kHz, это значит, что тот короткий промежуток времени равен 1/44100 секунды (следует из размерности величины Гц = 1/с). Современные звуковые карты поддерживают частоту дискретизации до 192 kHz. Так, со временем разобрались.

Амплитуда и сэмплы

Теперь, что касается амплитуды (громкости звука в коротком промежутке времени). Амплитуда выражается числом, которое занимает в файле 8, 16, 24, 32 бита (теоретически можно и больше). От точности амплитуды, я бы сказал, зависит точность звука. Как известно, 8 бит = 1 байту, следовательно, одно значение амплитуды в какой-то короткий промежуток времени в файле занимает 1, 2, 3, 4 байта соответственно. Таким образом, чем больше число занимает места в файле, тем шире возможный диапазон значений для этого числа, а значит и больше точность амплитуды.

Для PCM-файлов точность (или разрядность) может быть следующей:

  • 1 байт / 8 бит — -128…127
  • 2 байта / 16 бит — -32 760…32 760
  • 3 байта / 24 бита — -1…1 (с плавающей точкой)
  • 4 байта / 32 бита — -1…1 (с плавающей точкой)

Но список возможных разрядностей на самом деле весьма шире, здесь представлены лишь наиболее популярные.

Совокупность амплитуды и короткого промежутка времени носит название сэмпл.

Заголовок

Итак, давайте рассмотрим первую часть WAV-файла подробнее. Следующая таблица наглядно показывает структуру заголовка:

МестоположениеПолеОписание
0…3 (4 байта) chunkId Содержит символы «RIFF» в ASCII кодировке 0x52494646 . Является началом RIFF-цепочки.
4…7 (4 байта) chunkSize Это оставшийся размер цепочки, начиная с этой позиции. Иначе говоря, это размер файла минус 8, то есть, исключены поля chunkId и chunkSize.
8…11 (4 байта) format Содержит символы «WAVE» 0x57415645
12…15 (4 байта) subchunk1Id Содержит символы "fmt " 0x666d7420
16…19 (4 байта) subchunk1Size 16 для формата PCM. Это оставшийся размер подцепочки, начиная с этой позиции.
20…21 (2 байта) audioFormat Аудио формат, список допустипых форматов. Для PCM = 1 (то есть, Линейное квантование). Значения, отличающиеся от 1, обозначают некоторый формат сжатия.
22…23 (2 байта) numChannels Количество каналов. Моно = 1, Стерео = 2 и т.д.
24…27 (4 байта) sampleRate Частота дискретизации. 8000 Гц, 44100 Гц и т.д.
28…31 (4 байта) byteRate Количество байт, переданных за секунду воспроизведения.
32…33 (2 байта) blockAlign Количество байт для одного сэмпла, включая все каналы.
34…35 (2 байта) bitsPerSample Количество бит в сэмпле. Так называемая «глубина» или точность звучания. 8 бит, 16 бит и т.д.
36…39 (4 байта) subchunk2Id Содержит символы «data» 0x64617461
40…43 (4 байта) subchunk2Size Количество байт в области данных.
44… data Непосредственно WAV-данные.

Вот и весь заголовок, длина которого составляет 44 байта.

Подводные камни

Выше мы рассмотрели простейший случай заголовка с одной подцепочкой перед областью данных. Но на практике встречаются и более сложные или даже непредвиденные сценарии, с которыми можно увязнуть надолго.

В chunkSize лежит заведомо слишком большое значение. Такое происходит, когда вы пытаетесь читать данные в режиме стриминга. Например, декодер LAME при выводе результата декодирования в STDOUT в этом поле возвращает значение 0x7FFFFFFF + 44 - 8 , а в subchunk2Size — 0x7FFFFFFF (что равно максимальному значению 32-разрядного знакового целочисленного значения). Это объясняется тем, что декодер в таком режиме выдаёт результат не целиком, а небольшими наборами данных и не может заранее определить итоговый размер данных.

Подцепочек может быть больше, чем две, например, при попытке декодировать аудио универсальным декодером ffmpeg 4.1.3 ffmpeg -i example.mp3 -f wav example.wav в декодированном файле помимо рассмотренных подцепочек fmt и data будет содержаться ещё одна LIST перед областью данных. Таким образом, когда вам понадобится добраться до данных, вам потребуется пропустить ненужные подцепочки, пока не встретится data . Это будет сделать не слишком сложно, так как можно читать ID подцепочки и её размер, и если она не data , то пропускать данные, основываясь на её размере.

Блок данных

В моно варианте значения амплитуды расположены последовательно. В стерео же, например, сначала идет значение амплитуды для левого канала, затем для правого, затем снова для левого и так далее.

Заметка о типах данных

Частота выборкиУказывает количество цифровых снимков в секунду звукового сигнала. Эта скорость определяет частотный диапазон аудиофайла. Чем выше частота дискретизации, тем ближе форма цифрового сигнала к исходному аналоговому сигналу. Низкая частота дискретизации ограничивает диапазон частот, который может быть записан, что может привести к плохой работе записи с оригинальным звуком.


В соответствии сТеорема выборки НайквистаЧтобы воспроизвести данную частоту, частота дискретизации должна быть как минимум вдвое больше этой частоты. Например, частота дискретизации CD составляет 44 100 выборок в секунду, поэтому частота может воспроизводиться до 22 050 Гц, что чуть выше предела человеческого слуха в 20 000 Гц.

AНизкая частота дискретизации, которая искажает исходную звуковую волну.
BВысокая частота дискретизации для полного воспроизведения оригинальной звуковой волны.

Общие частоты дискретизации для цифрового аудио

Частота выборки Уровень качества Частотный диапазон
11,025 Hz Плохое радио AM (бюджетные мультимедиа) 0–5,512 Hz
22,050 Hz Рядом с FM-радио (высококачественные мультимедиа) 0–11,025 Hz
32,000 Hz Лучше, чем FM-радио (стандартная частота дискретизации) 0–16,000 Hz
44,100 Hz CD 0–22,050 Hz
48,000 Hz Стандартный DVD 0–24,000 Hz
96,000 Hz Blu-ray DVD 0–48,000 Hz

Бит глубина

Битовая глубина определяет динамический диапазон. При дискретизации звуковых волн укажите значение амплитуды, наиболее близкое к исходной амплитуде звуковой волны для каждого сэмпла. Более высокая битовая глубина может обеспечить более возможные значения амплитуды, в результате чего в более широком диапазоне динамического, нижний опорный шумовой и более высокую точность.

Бит глубина Уровень качества Значение амплитуды Динамический диапазон
8 бит Телефон 256 48 dB
16 бит Аудио CD 65,536 96 dB
24 бита Аудио DVD 16,777,216 144 dB
32 бит оптимальный 4,294,967,296 192 dB

Чем выше битовая глубина, тем больше обеспечен динамический диапазон.

PCM аудио данные

PCM

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

Хранение аудиоданных PCM

PCM

Если это монофонический аудиофайл, данные выборки сохраняются в хронологическом порядке (иногда они также сохраняются в режиме LRLRLR, но данные другого канала равны 0), если это двойной канал, обычно в соответствии с LRLRLR. Способ хранения зависит от размера машины. Режим с прямым порядком байтов показан ниже:

Аудиоданные PCM - это несжатые данные, поэтому они обычно относительно большие, общий формат MP3 сжимается, а скорость сжатия MP3 128 Кбит / с может достигать 1:11.

Параметры аудиоданных ИКМ

Как правило, когда мы описываем параметры аудиоданных PCM, существуют следующие способы описания:

44100 Гц относится к частоте дискретизации, что означает 44100 выборок в секунду. Чем больше частота дискретизации, тем больше места занято для хранения цифрового звука.

16 бит относится к точности выборки, что означает, что после дискретизации исходного аналогового сигнала каждая точка выборки представляется в компьютере 16 битами (два байта). Чем выше точность выборки, тем точнее могут быть представлены различия в аналоговых сигналах.

Стерео означает количество каналов, то есть количество микрофонов, используемых во время семплирования. Чем больше микрофонов, тем больше он может восстановить реальную среду семплирования (конечно, также указывается размещение микрофона).

Вообще говоря, чем больше амплитуда сигнала в данных PCM, тем больше объем.

Обработка аудиоданных PCM

Уменьшить громкость канала 1

Поскольку для аудиоданных PCM его амплитуда (то есть значение выборки точки выборки) представляет собой объем, поэтому мы можем уменьшить громкость канала, уменьшив значение данных канала ,

Из исходного кода видно, что после считывания 2-байтового значения выборки левого канала эта программа преобразует его в переменную короткого типа на языке Си. Значение делится на 2 и записывается обратно в файл PCM. На следующем рисунке показана диаграмма формы входных двухканальных аудиосэмплов PCM.

На следующем рисунке показана форма сигнала выходного левого канала после обработки. Видно, что амплитуда сигнала левого канала уменьшается вдвое.

PCM → WAV

Wav format

WAV - это формат звукового файла, разработанный Microsoft и IBM для ПК, который соответствует спецификации файла RIFF (Resource Interchange File Format) и используется для сохранения аудиоинформационных ресурсов платформы Windows. Он широко поддерживается платформой Windows и ее приложениями. Файл WAVE обычно представляет собой просто файл RIFF с одним блоком «WAVE», который состоит из двух субблоков (блок субданных «fmt» и блок субданных «data»), и его формат показан на следующем рисунке:

Определение формата WAV

Суть этого формата заключается в добавлении заголовка файла перед файлом PCM. Значение каждого поля следующее:

Разбор заголовка файла WAV

Вот первые 72 байта файла WAVE, байты отображаются в виде шестнадцатеричных чисел:

Wav Header parse

Полевой анализ выглядит следующим образом:

PCM → WAV код 1

Blueware


– EOF –

И в первом, и во втором случаях нам нужно знать, как устроен WAV файл. Когда я обратился в интернет с этим запросом, то не сразу нашёл, а то, что нашёл, оказалось не совсем точным. Кроме того многие рекомендации по записи WAV файлов рассчитаны на умных программистов, а я кроме Турбо бейсика (простейшая программа DOSовских времён) ничего не знаю. Однако Турбо бейсик знаю хорошо, знаю, как среду способную на многое даже внутри современных продвинутых систем, и вам её рекомендую.

Итак, WAV файл. Состоит из шапки или головной части "head" - от нулевого байта до байта номер 43 включительно (всего 44 байта), и области данных "DATA" - от байта номер 44 и до конца файла.

Местоположение Описание
0..3 (4 байта) содержит символы “RIFF” в ASCII кодировке.
4..7 (4 байта) это = длина файла – 8
8..11 (4 байта) содержит символы “WAVE”
12..15 (4 байта) содержит символы “fmt “
16..19 (4 байта) 16 для формата PCM (не надо знать, что это такое)
20..21 (2 байта) аудио формат, для PCM = 1 (то есть, Линейное квантование). Значения, отличающиеся от 1, обозначают некоторый формат сжатия.
22..23 (2 байта) количество каналов. Моно = 1, Стерео = 2 и т.д.
24..27 (4 байта) частота дискретизации. 44100 Гц или 32000 Гц = 32 сэмпла / мсек
28..31 (4 байта) число байт, переданных за сек воспроизведения
32..33 (2 байта) количество байт для одного сэмпла, включая все каналы.
34..35 (2 байта) количество бит в сэмпле, “глубина” или точность звучания. 8 , 16 бит и т.д.
36..39 (4 байта) содержит символы “data”
40..43 (4 байта) количество байт в области данных = длина файла-44


Свежее замечание. А КАК ОБСТОЯТ ДЕЛА В ВИЗУАЛ БЕЙСИКЕ?

В среде VB6 шапку WAV файла для стереозвука со скоростью раздачи 44100 сэмпл/сек можно записать в файл "T.wav" следующим образом:
'___________________________

Dim Header(10) As Long


ВЕРНЁМСЯ К ТУРБО БЕЙСИКУ

Теперь обратимся к практике. Сделаем звук и запишем его в WAV файл.
Эта (см. ниже) программа на Турбо бейсике поможет вам понять как всё работает. Не будем пока писать музыку, но будем создавать звуковые сэмплы для звука заданной частоты.
Вы запускаете эту программу и оператор INPUT выводит на экран знак вопроса, спрашивая Вас, что делать? Хотите выйти из программы (exit) - печатаете "e" и Enter
Прежде всего нужно открыть файл (open) - вводите "or", откроется файл "r.wav"
Можете поэкспериментировать -
"l" покажет длину файла LOF и положение поинтера LOC
"s44" установит поинтер на 44-й байт файла
"p123" считает (от положения поинтера) в виде символов 123 байта в переменную S$
"g" запишет в файл (от положения поинтера) значение переменной S$

Но давайте записывать звук - напечатайте "w" и нажмите Enter. Мы попадаем на участок программы, в котором идет многократное обращение к функции, вычисляющей амплитуду звука для каждого семпла - FNSS2(260.74,1). В программе записывается два звука - звук с частотой 260.74 Гц ( До первой октавы), определяемый, по тембру и особенностям звучания, параметрами таблицы под номером 1, и следом - второй звук, звук чистой синусоиды той же частоты для сравнения (таблица параметров 0). Перед началом записи звуков функция FNSS2, их создающая, устанавливает по умолчанию свои внутренние переменные, это происходит при обращении к ней с F=0.

После того, как записывающая звук функция отработала, и на экране появился знак вопроса, нужно ввести "h" и записать этим действием "head" WAV файла. Подпрограмму 100, записывающую "head", Вы видите чуть выше.
MKI$(. ) функция, переводящая целое число в его двухбайтовое символьное представление,
MKL$(. ) функция, переводящая вещественное число в его 4-х байтовое символьное представление. Эти функции есть в Турбо бейсике.
Затем нужно закрыть файл (close) - введите "c", и выйти из программы - введите "e".
Теперь можете экспериментировать - просматривать файл в редакторе и прослушивать его.

Конечно, интересно знать, как устроена делающая звук функция FNSS2(F,K).
О той, которую сделал я, хочу рассказать, и порассуждать о возможностях компьютерного моделирования звука, в следующей статье. А здесь приведу более простой пример.

DEF FNSS2( F,K)
STATIC FS,KS,A0,A1,A2,MA2,X,DX,D
LOCAL A,Z,ZZ

IF F=0 THEN 'first setup
FS=F : KS=K
FNSS2=0 : EXIT DEF
END IF

IF NOT(F=FS AND K=KS) THEN
'new frequency
FS=F : X=2 : DX=2*FS/VEL
'new parameters
KS=K : A0=1 : A1=0 : A2=0 : MA2=0 : D=1 'параметры по умолчанию
SELECT CASE K
CASE 0 : A0=1 : A1=0 : A2=0 : D=1
CASE 1 : A0=0 : A1=1 : A2=0 : D=0.99
CASE 2 : A0=0 : A1=0 : A2=1 : MA2=1 : D=1
END SELECT
END IF

IF X<1 THEN Z=X*2-1 ELSE Z=(X-1)*2-1 : Z=-Z
ZZ=1-Z*Z : A=A0*(ZZ*3+ZZ*ZZ)/4+A1*ZZ*(1-2.3*Z)
IF MA2=1 THEN A=0 : IF X>1-2*DX AND X<1+2*DX THEN A=A2
IF X<1 THEN A=-A

Как видно, начальное обращение к функции устанавливает параметры набора K=0, а следующее обращение с другой частотой или с другим K вызывает переустановку начальных условий и определение шага изменения фазы по формуле:
ШАГ = 2*(Частота звука)/(Частота дискретизации)

Переменная X, изменяемая при каждом обращении на шаг DX, всё время находится в интервале (0,2), что соответствует привычному нахождению фазы в интервале от 0 до 2*Пи.
Первый полупериод колебания программируется по формулам для -1<Z<1 :
Y = (1 - Z^2) *3/4 + (1 - Z^2)^2 *1/4 - очень хорошее представление синусоиды
Y = (1 - Z^2)*(1-2.3*Z) - колебание с отрицательным выбросом в конце полупериода
Второй полупериод колебания программируется по этим же формулам, но проходится в противофазе по Z и знак A меняется на противоположный. Противофазное прохождение второго полупериода позволяет плавно "сшивать" выбросы между собой.

Набор параметров CASE 2, который вы можете видеть внутри функции, предназначен для генерирования короткого импульса. Имея такой импульс удобно изучать функцию ревеберации (я её сделал, но о ней речь пойдёт в дальнейшем).

Если некоторые формы импульса уже созданы случаями CASE, то совсем нетрудно создать и промежуточную форму, задав новое CASE с иными значениями начальных амплитуд A0, A1 и A2. Можно задать и различные D - параметры ослабления для каждой амплитуды. Таким образом, создавая различные случаи CASE, можно математическим путём варьировать как общую форму звукового колебания, так и изменять звук (тембр и громкость) в процессе его звучания.
Алгоритм, как мне представляется, достаточно эффективный. Рисунок над заголовком статьи демонстрирует это, на нём в окне редактора звука Wave Editor показаны последовательно - моделированный звук рояля, и, вслед за ним, просто синусоида.

Давайте сейчас немного пообсуждаем то, как представляются числа в файле формата WAV.
Они следуют друг за другом в байтах, каждый из которых может быть прочитан как символ.
Двухбайтовое число читается так -
если оно положительно, то код второго символа оказывается меньше чем 128. Тогда этот код умножается на 256 и к полученному числу прибавляется код первого символа.
если оно отрицательно, то код второго символа оказывается больше чем 127. Тогда из этого кода вычитается число 256, полученное отрицательное число умножается на 256, и к полученному отрицательному результату прибавляется (со знаком плюс!) код первого символа.
В стереозаписи двухбайтовые числа-амплитуды двух каналов перемежают друг друга.

Waveform Audio File Format — формат для хранения записи оцифрованного звука.

Формат был создан компанией Microsoft. Представляет собой первый стандартный аудио файл с качественным звучанием. Содержит звуки, звуковые эффекты, голосовые записи и музыкальные композиции. Формат WAV не актуален на сегодняшний день, так как файлы данного типа имеют большой размер. Преимущество – сжимает звук без потерь. Семплы этого формата – от 8 до 16 бит. Используется в качестве звуков системы на операционной системе OC Windows.

Конвертировать из WAV
1 WAV в AAC
2 WAV в AC3
3 WAV в AIFF
4 WAV в AMR
5 WAV в AU
6 WAV в CAF
7 WAV в CDDA
8 WAV в DSS
9 WAV в DTS
10 WAV в FLAC
11 WAV в GSM
12 WAV в M4A
13 WAV в M4R
14 WAV в MP2
15 WAV в MP3
16 WAV в MP4
17 WAV в OGA
18 WAV в OGG
19 WAV в OPUS
20 WAV в SPX
21 WAV в SLN
22 WAV в TTA
23 WAV в VOC
24 WAV в W64
25 WAV в WMA
26 WAV в WV
27 WAV в AVI
28 WAV в MPEG
29 WAV в MOV
30 WAV в FLV
Конвертировать в WAV
1 AAC в WAV
2 AC3 в WAV
3 AIFF в WAV
4 AMR в WAV
5 AU в WAV
6 CAF в WAV
7 CDDA в WAV
8 DSS в WAV
9 DTS в WAV
10 FLAC в WAV
11 GSM в WAV
12 M4A в WAV
13 M4R в WAV
14 MP2 в WAV
15 MP3 в WAV
16 MP4 в WAV
17 OGA в WAV
18 OGG в WAV
19 OPUS в WAV
20 SPX в WAV
21 SLN в WAV
22 TTA в WAV
23 VOC в WAV
24 W64 в WAV
25 WMA в WAV
26 WV в WAV
27 AVI в WAV
28 MPEG в WAV
29 MOV в WAV
30 FLV в WAV

Конвертер поддерживает работу с файлами M4A, OGG, MP3, FLAC. С его помощью можно подготовить композиции для iphone и выполнить ряд иных операций.

Для обработки всех форматов возможностей приложения предостаточно. Нет потребности использования других продуктов для достижения требуемого результата.

Обработка аудиозаписей занимает считанные секунды и не требует утомительного ожидания. Причем вне зависимости от выбранного исходного формата файла.

Приложение функционирует online и не требует предварительного регистрирования в системе. Никогда еще обработка аудио не была столь простой и беспроблемной.

Обилий настроек конвертера wav онлайн позволяет регулировать параметры цифровых и аналоговых данных в соответствии с личными потребностями пользователя.

Преобразованная в требуемый формат музыка удаляется из системы буквально в течении нескольких часов. Интерфейс на русском прост и понятен для восприятия.

Обработка в конвертере wav онлайн осуществляется не только быстро, но и без потери качества. При любом исходном формате новый трек никого не разочарует.

Нет потребности ставить программу для обработки музыки на ПК. Полный доступ к приложению реализован непосредственно в браузере. Причем в любом на выбор.

Плата за работу в конвертере wav онлайн отсутствует. Сервис доступен на бесплатной основе без какого-либо ограничения по функционалу и возможностям.

Читайте также: