Приветствую! Сегодня мы рассмотрим странное сообщение в социальной сети ВКонтакте.
audio_msg.opus — документ, который можно заметить в ВКонтакте, если вы отправляли голосовые сообщения. При переходе может быть страница 404 (код означает — не найдена). При этом данный документ вы не отправляли.
- Разбираемся
- Что такое Opus?
- Итоговые мысли
- Добавить комментарий Отменить ответ
- ⇡#Opus: новое слово в цифровом звуке
- ⇡#Как работает Opus
- ⇡#Opus: наглядная победа
- ⇡#Софт для работы с Opus
- ⇡#Заключение
- Используем скрытые параметры для загрузки документа
- Как правильно загрузить файл на сервер ВКонтакте
- Сохраняем документ на сервере
Разбираемся
Предположительно audio_msg.opus — внутреннее название голосового сообщения.
Для открытия audio_msg.opus можно сделать следующее:
- Открыть исходный код страницы. В браузерах для ПК достаточно нажать Ctrl + U.
- Второй вариант — нажать правой кнопкой по audio_msg.opus, выбрать пункт Посмотреть код, либо Исследовать элемент, что-то в этом духе. Вам будет в редакторе показан код, где содержится audio_msg.opus.
- В коде найти ссылку на audio_msg.opus, далее скопировать и открыть в новой вкладке.
- Скорее всего, если вы все правильно сделаете — будет проиграна запись.
Вышеперечисленный способ подходит, если audio_msg.opus встречается в обычном браузере. В случае с приложением, скорее всего код посмотреть нельзя будет. Поэтому здесь лучше всего написать в поддержку приложения.
Скорее всего audio_msg.opus — баг, который будет исправлен. Возможно касается только приложений VK.
Пример странного голосового сообщения:
На заметку — OGG это формат файла, как MP3, но сжимает еще лучше.
Еще пример загадочного сообщения в мобильном приложении ВКонтакте:
Их может быть даже несколько:
Как видите — размер хоть и крохотный, но разный. Возможно это дубли ваших отправленных сообщений.
Что такое Opus?
Оказывается Opus — кодек, который видимо используется в голосовых сообщениях. Эффективно справляется со звуковыми артефактами.
Кодек Opus показывает лучшие результаты на невысоком битрейте, обходя конкурентов — Apple HE-AAC, Nero HE-AAC, Vorbis и AAC LC. Возможно по этой причине и используется в ВКонтакте.
Итоговые мысли
Лично я думаю что это:
- Глюк ВКонтакте, либо — проблема в приложении.
- audio_msg.opus — скорее всего файл с записью, и может быть это внутреннее название голосового сообщения.
- Наличие такого сообщения не представляет никакой опасности.
- При использовании приложения — напишите в поддержку.
- Возможно запись отображается только в мобильных приложениях.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
14 декабря 2012 |
Отдельные открытия, сделанные человеком, оказываются настолько практичными изобретениями, что остаются в повседневной жизни надолго . Например, стандарту цифрового сжатия звука MP3 уже около 20 лет, что по меркам компьютерных технологий — более чем долгий срок. За эти двадцать лет произошло немало открытий и технологических прорывов. Но для цифрового аудио, как это ни странно, пока мало что изменилось. MP3 «забрался» во все устройства, какие только можно, — смартфоны, портативные проигрыватели, DVD-плееры, часы и прочие электронные приборы.
Почему так? Ведь кодирование с потерями — это неизбежное ухудшение качества звука. Простому обывателю вполне может показаться, что у MP3 давно есть альтернативы — FLAC, APE и прочие алгоритмы компрессии аудиоданных с возможностью идентичного восстановления волновой формы после декодирования. Суждение о том, что появление алгоритмов сжатия звука без потерь составит MP3 конкуренцию во всех отношениях, — очень поверхностно. Помимо качества звука, за которое так переживают любители музыкальных коллекций, существует еще немало других объективных причин, по которым MP3 не может быть забыт и заменен принципами сжатия без потерь.
Прежде всего, потому что форматы кодирования звука с потерями используются не только для музыки, но и для передачи голоса через Интернет. Главный козырь MP3 и других механизмов сжатия с потерями — эффективное использование каналов передачи. Чтобы организовать IP-телефонию, необходимо обеспечить внятную речь как можно большему числу абонентов. При этом качество звука уходит на второй план. Кроме этого, очень важна возможность «мгновенного» декодирования потока, без которого затрудняется синхронный обмен информацией. В данном случае использование (даже теоретически) алгоритмов сжатия без потерь приводило бы к сильным временным задержкам, и интерактивное общение было бы просто невозможным.
Тем не менее MP3 не лишен недостатков. Не секрет, что низкий битрейт «съедает» детали звука, наделяя его к тому же целым набором неприятных артефактов — призвуками, свистом и звоном, разного рода искажениями. При использовании MP3 в IP-телефонии наблюдаются большие временные задержки из-за необходимости дополнительной буферизации данных.
⇡#Opus: новое слово в цифровом звуке
Новый открытый кодек Opus лишен самых серьезных недостатков MP3, при этом он сохранил все достоинства «народного» кодека и даже приумножил их.
Структура Opus позволяет ему эффективно справляться со звуковыми артефактами. Для этого была предложена многоступенчатая архитектура обработки аудиосигнала. Основной аргумент, который говорит в пользу применения нового кодека для IP-телефонии, — низкая временная задержка.
Основную работу над созданием уникального алгоритма сжатия вели несколько человек: Jean-Marc Valin (Xiph.Org, Octasic, Mozilla Corporation), Koen Vos (Skype) и Timothy B. Terriberry (Xiph.Org, Mozilla Corporation). Не обошлось и без вездесущей Google — по словам самих создателей Opus, интернет-гигант оказал значительную поддержку при разработке и тестировании кодека.
Один из создателей кодека Opus — Jean-Marc Valin
Движок нового кодека основывается на двух независимых стандартах, предложенных Xiph.Org Foundation и Skype Technologies S.A. (принадлежит Microsoft). Новый кодек является гибридным решением, он сочетает в себе технологии кодеков CELT (Constrained Energy Lapped Transform) и SILK. Последний используется для реализации связи в Skype.
⇡#Как работает Opus
Принцип работы кодека не нов, но оригинален и главное — позволяет получить очень хороший результат на выходе. Поступивший сигнал кодируется SILK или CELT избирательно.
Первый движок (SILK) применяется для компрессии голоса, а также в тех случаях, когда требуется эффективно расходовать пропускную способность канала связи. Обрабатываемый аудиосигнал анализируется кодеком на предмет наличия человеческой речи. Голосовые составляющие отделяются от прочих звуков, после чего кодек выполняет анализ частотной характеристики звука, понижая уровень дискретизации для данных, содержащих голосовую информацию, то есть речь. Затем Opus исследует присутствующие шумы и оптимизирует сигнал для определенного битрейта. Далее кодек преобразовывает сигнал с помощью фильтра предварительной очистки. Используя речевые кадры, модуль предсказания частоты аудиосигнала вносит изменения в последующие кадры, после чего частотное квантование нормирует частоты человеческой речи. Далее следует важный этап обработки звука — устранение искажений, возникающих при недостаточно высоком битрейте. После этого используется модуль формирования шума квантования, который снижает шумы внутри рабочей полосы, вытесняя их за пределы рабочего диапазона. На заключительном этапе интервального кодирования SILK работает с дискретными величинами, которые могут принимать ограниченное число значений, — осуществляется покадровый вывод сигнала.
В процессе кодирования аудиоданных с высоким качеством, например музыки, задействуется модуль CELT. Его механизм схож с принципом работы наиболее популярных кодеков с потерями и завязан на дискретных косинусных преобразованиях, а также на «оптимизации» звука. Последняя состоит в том, что из сигнала удаляются составляющие, которые не несут полезной нагрузки для слуха человека, — до кодирования он их или не слышит, или слышит с большим трудом.
Если заглянуть в настройки кодирования, например в программе EZ CD Audio Converter (бывший Easy CD-DA Extractor), можно увидеть, что новый кодек предлагает выбрать режим сжатия — звук или музыку. Эта настройка и определяет приоритет того или иного алгоритма кодирования Opus.
Opus поддерживает частоты дискретизации от 8 до 48 кГц. Кодирование звука возможно в диапазоне битрейта 6—510 кбит/с. Длительность кадров варьируется от 2,5 до 20 мс.
Кодек осуществляет кодирование в режимах моно и стерео, используя технологию постоянного и переменного битрейта, а также поддерживает компрессию до 255 каналов.
⇡#Opus: наглядная победа
Универсальность структуры кодека Opus позволила ему на невысоком битрейте обойти самых главных конкурентов — Apple HE-AAC, Nero HE-AAC, Vorbis и AAC LC. На данной диаграмме вы можете наблюдать, насколько лучше параметры задержки у нового кодека по сравнению с конкурентами.
А это — график, демонстрирующий превосходство Opus над другими кодеками по качеству звука. Результаты тестирования говорят о том, что аудио, декодированное с помощью Opus, в большинстве случаев более полно восстанавливает исходную картину звука — на разных битрейтах и на разной частоте. Под терминами fullband stereo и narrowband подразумеваются граничные частоты дискретизации.
Говоря о достоинствах нового кодека, нужно отметить и стабильность его работы в разных условиях, что особенно важно при передаче данных в беспроводных сетях. Opus обладает гибким алгоритмом адаптации к изменению пропускной способности канала связи, поэтому качество звука остается неизменным, а сам кодек частично компенсирует потери, обеспечивая трансляцию без сбоев.
⇡#Софт для работы с Opus
Разработчики программного обеспечения торопятся выпустить обновления с поддержкой кодека Opus. Такие популярные утилиты для работы со звуком, как EZ CD Audio Converter, foobar2000, AIMP, VLC Media Player, уже могут работать с файлами в этом формате. Новый кодек принят на вооружение и при организации потокового вещания посредством Icecast, он включен в K-Lite Codec Pack и фильтры LAV.
В ближайших версиях альтернативной прошивки для портативных аудиоустройств Rockbox также появится поддержка Opus. Любители смогут слушать музыку и аудиокниги на плеерах iPod, Archos и прочих. На портативных устройствах под управлением Android также можно будет слушать аудио через Rockbox, установив соответствующее приложение RaaA (Rockbox as an Application).
На данный момент новый кодек уже поддерживается в разработках Mozilla — Firefox и Thunderbird. Очевидно, что поддержку Opus скоро можно будет увидеть и в других браузерах. В ближайшее время он появится и в Skype.
Opus: палки в колесах
Очевидное превосходство качества, которое показывает Opus при кодировании, еще не означает его безоговорочной победы. Данный кодек пока не избавился от всех багов и только в сентябре этого года прошел сертификацию в IETF (Internet Engineering Task Force) как стандарт аудиокодека для использования в Интернете.
Кроме того, новой разработке еще предстоит «пободаться» с многочисленными претензиями и судебными исками, которые следует ожидать в будущем. Opus имеет статус royalty-free, то есть за его использование не нужно платить никаких отчислений правообладателям. Появление такого продукта, понятное дело, невыгодно многим конкурентам.
Первые «бузотеры» уже высказались против нового кодека — компании Qualcomm и Huawei заявили о том, что новая разработка нарушает принадлежащие им патенты. Разработчики Opus дали комментарии по этому поводу, сообщив, что они не нарушили авторских прав и более того — они ожидали появления подобных заявлений и готовы отстаивать свою правоту.
⇡#Заключение
Спустя 20 лет существования MP3 человек все так же плохо слышит разницу между оригинальным звуком и звуком, который претерпел потери в результате компрессии. Тем не менее он всячески ищет способы улучшить качество оцифрованного звука и минимизировать потери при одинаковом битрейте.
Кодек Opus, безусловно, ждет большое будущее. Низкий уровень искажений, а также минимальные по сравнению с конкурирующими алгоритмами временные задержки — все это делает Opus идеальным для интеграции данной технологии в сфере IP-телефонии и трансляции речи.
Впрочем, скорее всего, такого размаха, который сопутствовал победоносному шествию MP3, «Опусу» вряд ли удастся достичь. В свое время появление кодека MP3 стало настоящей революцией в сфере хранения и передачи звука. Сегодня новый кодек может лишь предложить более эффективное использование каналов передачи на низких скоростях. Что же касается музыкальных предпочтений, то, полагаем, любители портативного звука останутся стоять на своем — звук должен быть без потерь. Да и сами разработчики это не отрицают.
В презентации Opus сказано буквально следующее: «Кодек может использоваться для любых целей, за исключением Lossless-сохранения (для этого используйте FLAC) и за исключением кодирования с ультранизким битрейтом (для этого используйте codec2)».
Аппаратная поддержка Opus будет обязательно. Ведь показатели у нового кодека отличные, а значит, в скором времени можно будет ожидать использования новой технологии в беспроводных наушниках и портативных плеерах, которые мы по-прежнему будем по старинке называть MP3-плеерами.
Всем, кто работал с VK API, давно известно, что доступ к любой работе с аудиозаписями ВКонтакте был закрыт 16 декабря 2016 года, а информация о голосовых сообщениях вообще отсутствует в документации.
На примере моего пустого сообщества-песочницы
Так как же это делается?
Используем скрытые параметры для загрузки документа
Предварительно необходимо обратить внимание на один очень важный момент: чтобы отправить голосовое сообщение от имени группы или публичной страницы, загружать его придется все равно с токеном пользователя, но прикреплять этот документ потом можно и при отправке сообществами, уже с их токеном.
Как и для обычного документа, получаем адрес сервера для загрузки:
Основной момент здесь: параметр type=audio_message.
В ответ мы должны получить следующий JSON:
Как правильно загрузить файл на сервер ВКонтакте
Если отправлять файл не в формате multipart/form-data, ничего не выйдет.
В формате mp3 загрузить аудио тоже не получится, лучше всего использовать ogg, хотя можно и поэкспериментировать.
Можно использовать код отсюда, чтобы загрузить файл в нужном формате (пример указан на Java, аналоги для себя, я думаю, можно найти в интернете):
Используем экземпляр класса MultipartUtility, в нём ничего менять не нужно:
Всё, аудиосообщение загружено. Ответ от сервера в случае удачи будет похожим на это:
Сохраняем документ на сервере
Здесь также важно подметить: если вы сохраните документ не у пользователя, то при отправке он будет выглядеть как документ, а не как голосовое сообщение. Либо же вы отправите просто пустое сообщение.
Делаем следующий запрос:
Это была последняя стадия. Получаем ответ:
Вот и всё. Можно отправлять сообщения обычным способом, в attachments указав ссылку doc(owner_id)_(id), используя owner_id и id, полученные выше.
P.S. Обычный пользователь не может отправить сообщение, содержащее что-то кроме записи голоса. А через API это делается очень легко. Раньше это работало и в комментариях/обсуждениях и так далее, но сейчас, видимо, лавочку прикрыли, как и загрузку (но не отправку!) голосовых сообщений сообществами.
Я не являюсь автором «расследования» по поиску способа отправки аудиосообщений через API, я лишь собрал всю информацию в кучу и постарался красиво оформить. Заметил на просторах интернета много вопросов по этому поводу.
Данная статья написана для тех, кто работал с ВКонтакте API, и описывать неинтересные вещи я не стал, стараясь писать лишь по делу. Если решусь, напишу еще пару статеек о том, как написать бота на Java с использованием LongPoll-сервера VK (для личных страниц) и с использованием Callback API и web-сервлетов (для сообществ).
За предоставленные материалы и помощь благодарность Станиславу Куделко.