Я должен использовать чистое решение C # для передискретизации звука, которое может дать мне те же результаты, что и выборка звука FFmpeg.
FFmpeg сначала создает какой-то многофазный банк фильтров, а затем использует его для процесса выборки (извините за расплывчатую формулировку, но я не слишком знаком с этой темой). Согласно этой краткой документации, инициализация может быть настроен таким образом:
AVResampleContext* av_resample_init(
int out_rate,
int in_rate,
int filter_length,
int log2_phase_count,
int linear,
double cutoff
)
Параметры:
- out_rate: выходная частота дискретизации.
- in_rate: входная частота дискретизации.
- filter_length: длина каждого КИХ-фильтра в банке фильтров относительно частоты среза.
- log2_phase_count: log2 количества записей в банке многофазных фильтров.
- linear: если 1, то используемый КИХ-фильтр будет линейно интерполирован между двумя ближайшими, если 0, будет использоваться ближайший
- cutoff: частота среза, 1,0 соответствует половине выходной частоты дискретизации.
Мне нужно было бы использовать библиотеку С#, которую можно настроить на той же глубине. Я пытался использовать NAudio (точнее, его класс WaveFormatConversionStream
), но там я мог только установить частоту дискретизации ввода и вывода, поэтому я не получил ожидаемых результатов.
Итак, есть ли библиотека C #, которая может выполнять повторную выборку с теми же настройками, что и FFmpeg? Или тот, в котором есть почти все эти настройки или подобные? Примечание. Мне нужно решение C#, а не оболочка!