Nano Hash - криптовалюты, майнинг, программирование

Android RIL-речевой_кодек_info

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

Вначале я погрузился в исходные файлы, такие как AudioPolicyManager и некоторые другие файлы soc ядра Linux. Когда вы записываете дополнительные журналы в эти файлы, вы получаете, что динамик и микрофон всегда настроены на одну и ту же частоту (максимум, я думаю, 48000 Гц в моем случае с динамиками). Я почти уверен, что голос не передается с такой частотой, ядро ​​​​телефонии согласовывает метод сжатия голоса, прежде чем протолкнуть его в канал. Я также безуспешно пытался восстановить его с помощью AT-команд, даже когда есть некоторые проприетарные команды, у которых нет doc.

Наконец у меня был краткий обзор журнала радио RIL (logcat -b radio) и я нашел эту строку:

I/RILQ ( 331): (0/331): RIL[0][event] qcril_qmi_voice_send_unsol_voice_speech_codec_info_htc: android_call_id = 1, codec = 7

Я думаю, что это позволит мне убедиться, какой речевой кодек согласовывается перед установкой вызова GSM, однако этот исходный код не открыт. Это скомпилированная библиотека *.so (./vendor/htc/m8/proprietary/blobs/gsm/vendor/lib/libril-qc-qmi-1.so)

Я также разобрал (objdump), чтобы узнать, какой голосовой кодек соответствует 7, но я думаю, что потрачу время на поиск этой сборки.

Итак, мой вопрос: кто-нибудь знает, есть ли бесплатный libril.c с открытым исходным кодом, чтобы дать мне представление о том, какие речевые коды соответствуют этим целочисленным значениям? На данный момент мой оператор телефонии заявляет, что поддерживает AMR-WB в 3g звонках. Если я найду какой-нибудь исходный файл, в котором кодек 7 соответствует AMR-WB, то буду почти уверен, что мой оператор телефонии прав.

Примечание. Я не ищу HD-Voice over 4G, я уже знаю, как это проверить.

заранее спасибо


  • Я протестировал его в режиме GSM 2G и получил кодек = 6. Дело в том, какой удобочитаемый кодек соответствует каждому номеру. 15.09.2015

Ответы:


1
    CODEC_QCELP13K = 0x0001
    CODEC_EVRC = 0x0002
    CODEC_EVRC_B = 0x0003
    CODEC_EVRC_WB = 0x0004
    CODEC_EVRC_NW = 0x0005
    CODEC_AMR_NB = 0x0006
    CODEC_AMR_WB = 0x0007
    CODEC_GSM_EFR = 0x0008
    CODEC_GSM_FR = 0x0009
    CODEC_GSM_HR = 0x000A
    CODEC_G711U = 0x000B
    CODEC_G723 = 0x000C
    CODEC_G711A = 0x000D
    CODEC_G722 = 0x000E
    CODEC_G711AB = 0x000F
    CODEC_G729 = 0x0010
    CODEC_EVS_NB = 0x0011
    CODEC_EVS_WB = 0x0012
    CODEC_EVS_SWB = 0x0013
    CODEC_EVS_FB = 0x0014

Как упомянул Чус Муньос, 7 представляет собой широкополосный AMR.

30.06.2017
  • Спасибо большое, очень ценю такую ​​полезную информацию. Где ты это взял? 01.07.2017

  • 2

    Для предъявления по месту требования.

    Я полностью подтверждаю, что voice_codec=7 — это кодек AMR_WB для 3G. Я купил sierra wireless, чтобы получить кодек через AT-команду, и это действительно подтверждает это. Это решение применимо ко всем сериям msm8974.

    06.11.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..