Сможешь на слух определить, какой звук качественнее?
Поставил на себе опыты. Делюсь результатами. + Собрал небольшую викторину, чтобы ты тоже мог себя проверить. Прямо в этом посте. Залетай!
Основная часть поста рассказывает историю о том, как я пришёл к этой идее.
Если хотите её пропустить и перейти сразу к викторине – кликайте сюда.
История начинается с того, что во время разработки одной из старых игр я решил хранить аудиофайлы в сборке в форматах wav и mp3.
Многие говорили мне, что mp3 не подходит для этого, но я не видел каких-то практических недостатков. Мне нужно было балансировать. Wav – чистые данные, но занимают очень много места. Mp3 сжимает данные и +- сохраняет качество. Он был хорошим решением для длинных треков, когда нужно, чтобы разрабатываемая игра мало весила.
Это было много лет назад. С тех пор я перенимал эту практику, поскольку она удовлетворяла мои хотелки. И, собственно, ничто не предвещало беды.
Отрицание
По умолчанию все звуки хранил в wav, а наиболее мясистые, вроде музыки или протяжённого ветра – в mp3. Казалось сбалансированный вариант.
Но вдруг спустя много лет..
Хоть это и крайне локальная проблема, но я впервые столкнулся с тем, что формат стал её причиной.
Первое время вовсе не мог поверить, что выверенную концепцию придётся разрушить.
Гнев
Почесав репу (чесал я её около 8 месяцев) решил, что от mp3 всё же лучше избавиться от греха подальше.
Переведя всё в wav, с ужасом узрел, что 107 Mb превратились в 578 Mb.
Сборка игры такая: 252 Mb –> 723 Mb.
Звуки игры такие: 75% объёма сборки (190 Mb) –> 91% (661 Mb).
В общем, случился тотальный перевес.
Не сказать, что в нынешнее время 700 Mb – неподъёмный для аудитории размер, но всё же в таком контексте это перебор. Я целенаправленно хотел, чтобы игры были легковесными.
Торг
Основной способ урезать размер – уменьшение частоты дискретизации, оно же качество звука.
Вот список популярных значений:
Если тяжело ориентироваться, что из этого хорошо, что плохо:
44100 Гц – это по впечатлению условно как 60 FPS в теме фреймрейта. Вроде +- стандарт, но и есть куда стремиться, и не обязательно придерживаться.
22050 Гц – прям как 30 FPS. Урезанность ощутима, но если картинка не особо активная, то и не страшно.
96000 Гц – ориентировочно 120 FPS. Для крутых ребят и крутой композиции.
Ну и.. «достаточно для речи» это как 12 FPS – «достаточно для анимации».
*все сравнения несут условно иллюстративный характер для описания восприятия и культуры. продолжая чтение, вы подтверждаете, что осознаёте, что автор не пытался всерьёз сравнивать две несравнимые величины.
В общем, мне нужно было перелопатить звуки и поторговаться с собой, чтобы определить, каким звукам я готов урезать качество, но так, чтобы это не было заметно.
Я собрал все звуки и переконвертировал их в разные варианты от 6000 до 44100 Гц (исходное качество), чтобы послушать, сравнить на разных компьютерах, с разными динамиками и наушниками. Как-никак, прежде чем принимать решение, нужно и самому иметь хотя бы общее представление о том, что делаешь.
Депрессия
Штош.. Для начала: дешёвые наушники рулят. В них нет всяких умных фильтров, преподносят тебе звуки «как есть» со всеми их недостатками, из-за чего на хороших наушниках разницу между разным качеством порой ощутить сложно, а на дешёвых – легко.
Также я решил не просто сравнить звуки на разных частотах, но и даже написал программку, которая перемешала звуки с частотами 22050 и 44100 случайным образом, чтобы я устроил себе тест, в котором я должен на слух определить, какой звук более качественный, какой менее, не зная изначально, где какой.
Если бы я угадал 50% – это бы означало, что эффекта от даунгрейда нет (по крайней мере для меня), поскольку половина – это уровень тыкания наугад.
Если значительно больше 50% – значит, эффект явно ощутим. Если значительно меньше – тогда это была бы совсем странная ситуация. Выходило бы, что уменьшение качества создавало бы ощущение, что оно стало лучше.
Итак. Программка написана. Списки звуков сгенерированы. Готов начинать угадывать. …проходит время… В основном, кажется, треки похожи. Но иногда попадаются детали, за которые можно ухватиться, чтобы сделать выбор. Иногда детали отличаются, но какие качественнее – непонятно. Иногда на некоторых минутных треках задерживаешься минут по 5, щёлкая их туда сюда в попытке выцепить хоть какие детали, по которым можно принять решение. …И вот я закончил.
Результат оказался:
59% – Столько на слух я правильно определил, где частота 22050 Гц, а где 44100 Гц.
Откровенно, ожидал большей разницы.
Так или иначе, к трекам нужно было подходить индивидуально. Поскольку исходное качество было 44100 – часть аудиодорожек перевёл на 32000, часть на 22050, постаравшись убедиться, что звучание воспринимается +- также. Но, к сожалению, я ориентировался лишь на свой слух. Люди с более чутким ухом, наверняка, почувствуют разницу лучше.
А после оказалось, что движок не дружит с частотой 32000. Без причины. Пришлось всё делать заново.
Сборка игры по итогу вместо 723 Mb стала весить 502 Mb. Возможно, неплохой компромисс.
Принятие
Знаете, не так уж всё и плохо. Побочным плюсом wav над mp3 оказалось то, что они гораздо быстрее загружаются движком в игру. Минутный трек в mp3 за 50-70 мс., а в wav – за 7-9 мс. Оптимизация колоссальная, это не может не радовать.
Итог: игра стала иметь больший размер, менее качественный звук.. но зато левые ПО не аннигилируют звучание, а загрузка стала быстрее.
Такие дела.
А теперь обещанная викторина.
Ниже лежит список из 13 пар одинаковых аудиозаписей, но разной частотой дискретизации. Вам нужно определить (или угадать), у какой записи частота выше. Звук с бóльшим значением более качественный.
Пример: первая запись с частотой 6000 Гц, вторая с 44100 Гц.
Если вы не чувствуете разницы между ними – вам поможет только господь.
Ну а мы начинаем!
1. У одной записи частота 16000 Гц, у другой 44100 Гц. Определите, у какой больше.
2. У одной 22050 Гц, у другой 44100 Гц.
3. 16000 Гц, 44100 Гц.
4. 16000 Гц, 44100 Гц.
5. 22050 Гц, 44100 Гц.
6. 22050 Гц, 44100 Гц.
7. 32000 Гц, 44100 Гц.
8. 22050 Гц, 48000 Гц.
9. 22050 Гц, 44100 Гц.
10. 16000 Гц, 44100 Гц.
11. 22050 Гц, 44100 Гц.
12. 22050 Гц, 44100 Гц.
13. 32000 Гц, 48000 Гц.
На этом всё.
Можете делиться результатами в комментариях. Можете делиться в личке, если не хотите продвигать пост комментариями. Можете не делиться, а просто дождаться списка правильных ответов. Я опубликую их в 7 вечера.
Но если хочется узнать пораньше – можете скачать звуки и посмотреть их параметры в аудиопроигрывателе. Это тоже ориентир.
Ответы:
1 - 2; 2 - 1; 3 - 1; 4 - 1; 5 - 2; 6 - 2; 7 - 1; 8 - 2; 9 - 1; 10 - 1; 11 - 2; 12 - 2; 13 - 1.
Также на правах саморекламы напоминаю, что разрабатываю новую игру, которую вы можете вишлиснуть. Жду всех, кому может быть интересно.