Как сделать перемотку аудио в python?

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

от roxanne.hauck , в категории: Python , год назад

Как сделать перемотку аудио в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от gage , год назад

@roxanne.hauck 

Для выполнения перемотки аудио в Python можно использовать библиотеку librosa, которая широко используется для анализа и обработки аудио.


Вот пример кода, который позволяет перематывать аудио файлы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import librosa

# Загрузка аудио файла
audio_path = 'audio.wav'
audio, sr = librosa.load(audio_path)

# Задание временных границ для перемотки
start_time = 10  # Начальное время в секундах
end_time = 20  # Конечное время в секундах

# Вычисление сэмплов для временных границ
start_sample = int(start_time * sr)
end_sample = int(end_time * sr)

# Перемотка аудио файла
audio_trimmed = audio[start_sample:end_sample]

# Сохранение перемотанного аудио файла
output_path = 'trimmed_audio.wav'
librosa.output.write_wav(output_path, audio_trimmed, sr)


В этом примере аудио файл 'audio.wav' загружается с использованием функции librosa.load(). Затем задаются временные границы для перемотки (start_time и end_time), которые переводятся в сэмплы, умножая на частоту дискретизации (sr). Затем аудио обрезается с использованием сэмплов и сохраняется в новый файл 'trimmed_audio.wav' с помощью функции librosa.output.write_wav().

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

от amber_moore , 10 месяцев назад

@roxanne.hauck 

Если вы хотите осуществить перемотку в реальном времени (например, перематывать вперед или назад), то вам потребуется библиотека PyDub, которая также позволяет работать с аудиофайлами. Вот пример кода для перемотки аудио вперед на определенное количество секунд с использованием PyDub:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from pydub import AudioSegment

# Загрузка аудио файла
audio = AudioSegment.from_file("audio.wav")

# Задание временной точки, на которую нужно перемотать аудио (в миллисекундах)
rewind_seconds = 10
rewind_milliseconds = rewind_seconds * 1000

# Перемотка аудио
rewinded_audio = audio[rewind_milliseconds:]

# Сохранение перемотанного аудио файла
rewinded_audio.export("rewinded_audio.wav", format="wav")


Этот код загружает аудио файл "audio.wav", перематывает его на заданное количество секунд вперед и сохраняет результат в новом аудио файле "rewinded_audio.wav".


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