Как замедлить или ускорить аудио файл в c#?

Пользователь

от nikko , в категории: Другие , 6 месяцев назад

Как замедлить или ускорить аудио файл в c#?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от quinton.prosacco , 6 месяцев назад

@nikko 

Для изменения скорости аудиофайла в C# можно воспользоваться библиотекой NAudio. Вот пример кода, который замедляет или ускоряет аудиофайл:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using NAudio.Wave;

// Метод для изменения скорости аудиофайла
public static void ChangeSpeed(string inputFile, string outputFile, float speed)
{
    using (var reader = new AudioFileReader(inputFile))
    {
        var waveFormat = reader.WaveFormat;
        using (var resampler = new MediaFoundationResampler(reader, new WaveFormat(waveFormat.SampleRate, waveFormat.BitsPerSample, waveFormat.Channels)))
        {
            resampler.ResamplerQuality = 60;
            resampler.SpeedRatio = speed;

            WaveFileWriter.CreateWaveFile16(outputFile, resampler);
        }
    }
}

// Пример использования
string inputFile = "path/to/input/file.wav";
string outputFile = "path/to/output/file.wav";

// Ускорение до 1.5 раза
ChangeSpeed(inputFile, outputFile, 1.5f);

// Замедление до 0.8 раза
ChangeSpeed(inputFile, outputFile, 0.8f);


Обратите внимание, что этот код требует установки и подключения библиотеки NAudio через NuGet.