Качество звука при медленном воспроизведении с использованием AVPlayer недостаточно хорошее даже при использовании AVAudioTimePitchAlgorithmSpectral - PullRequest
0 голосов
/ 23 сентября 2018

В iOS скорость воспроизведения можно изменить, установив AVPlayer.rate.Если для скорости воспроизведения AVP установлено значение 0,5, воспроизведение замедляется.

По умолчанию качество воспроизведения при скорости воспроизведения 0,5 ужасно.Чтобы повысить качество, вам нужно установить AVPlayerItem.audioTimePitchAlgorithm.

Согласно документации API, установка AVPlayerItem.audioTimePitchAlgorithm в AVAudioTimePitchAlgorithmSpectral делает качество наивысшим.

Код Swift:

AVPlayerItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithm.spectral // AVAudioTimePitchAlgorithmSpectral

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

В приложении Apple для Podcast, когда я установил скорость воспроизведения на 1/2, воспроизведение замедляется, а качество звука очень высокое, эхо невсе.

Я хочу, чтобы мое приложение обеспечивало то же качество, что и приложение Apple для подкастов.

Существуют ли API-интерфейсы iOS для повышения качества звука намного выше, чем AVAudioTimePitchAlgorithmSpectral?

Еслинет, почему Apple не предоставляет его, даже если они используют его в своем собственном приложении Podcast?

Или мне следует использовать стороннюю библиотеку?Существуют ли хорошие библиотеки по бесплатной или низкой цене, которые многие используют для изменения скорости воспроизведения?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Я искал и пытался изучить AudioKit и Audio Unit или даже подумывал о приобретении сторонней библиотеки обработки аудио с растяжением во времени для решения проблемы качества медленного воспроизведения в течение последних 3 недель.

Сейчаснаконец, я нашел супер простое решение.

AVPlayer может замедлять звук с очень хорошим качеством, установив AVPlayerItem.audioTimePitchAlgorithm в AVAudioTimePitchAlgorithm.timeDomain вместо AVAudioTimePitchAlgorithm.spectral.

В документации сказано:

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

Это означает, что spectral подходит для музыки .timeDomain подходит для голоса .

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

И именно поэтому замедленное качество звука в Apple Podcasts App оченьвысоко.Он также должен использовать этот алгоритм временной области.

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

0 голосов
/ 01 октября 2018

Я столкнулся с теми же проблемами с увеличением / уменьшением скорости при сохранении некоторого уровня качества.Я не мог заставить его работать хорошо, используя API Apple.В конце концов я обнаружил, что стоит взглянуть на эту превосходную стороннюю платформу:

https://github.com/AudioKit/AudioKit

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...