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

Проблема с низким уровнем записи голоса микрофона, когда для режима AVAudioSession установлено значение AVAudioSessionModeVideoChat

Согласно документации AVAudioSessionModeVideoChat -

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

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

Я использую setMode для AVAudioSessionModeVideoChat, чтобы приложение/система автоматически распознавало и адаптировалось к аппаратной интеграции (проводная и bluetooth-гарнитура) на лету. Но похоже, что установка этого режима для видеочата значительно снижает чувствительность встроенного микрофона, и, следовательно, звук записывается с низким тоном. Мои целевые пользователи приложения будут в основном в шумной атмосфере.

Есть ли способ увеличить чувствительность ввода и вывода до максимума и в то же время использовать режим AVAudioSessionModeVideoChat?

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

if (![[[AVAudioSession sharedInstance] category] isEqualToString:AVAudioSessionCategoryPlayAndRecord]) {
    [[AVAudioSession sharedInstance] setActive:NO error:&error];

    [[AVAudioSession sharedInstance] setActive:YES error:&error];
    NSLog(@"setActive error = %@", error);

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
    NSLog(@"setCategory error = %@", error);

    [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVideoChat error:&error];
    NSLog(@"setMode error = %@", error);
}

Детали среды тестирования: -

Протестированные устройства: iPad mini retina 4G и iPad 2.

iOS: 7.0.3

Тестирование со встроенными в устройство динамиками и микрофонами.


Ответы:


1

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

if (![[[AVAudioSession sharedInstance] category] isEqualToString:AVAudioSessionCategoryPlayAndRecord]) {
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:(AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionAllowBluetooth) error:&error];
    NSLog(@"setCategory error = %@", error);

    [[AVAudioSession sharedInstance] setActive:YES error:&error];
    NSLog(@"setActive error = %@", error);
}

Примечание. Мне пришлось удалить подход с набором режимов AVAudioSessionModeVideoChat, поскольку система имеет тенденцию оптимизировать системные ресурсы ввода / вывода и, следовательно, проблему чувствительности микрофона, как упоминалось в моем вопросе.

До сих пор я провел некоторое количество тестов на iPad mini и iPad 2. Еще нужно протестировать на iPhone.

Я надеюсь, что этот ответ поможет кому-то, если не мне!!

14.02.2014
  • Для меня эта опция AVAudioSessionCategoryOptionDefaultToSpeaker делает трюк с возвращением нормального значения громкости 24.10.2016
  • Новые материалы

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

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

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

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

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

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

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