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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@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.

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

от roma , 10 дней назад

@nikko 

Необходимо установить библиотеку NAudio через NuGet Package Manager в Visual Studio. Для этого можно просто выполнить следующую команду в консоли менеджера пакетов:

1
Install-Package NAudio


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


Если вам нужна более подробная информация о библиотеке NAudio и ее методах, вы можете посетить официальный сайт проекта: https://github.com/naudio/NAudio


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