13 lines
546 B
Python
13 lines
546 B
Python
import numpy as np
|
|||
|
|
|
||
|
|
|
||
|
|
def truncate_audio_to_last_n_seconds(audio_array, n_seconds=8, sample_rate=16000):
|
||
|
|
"""Truncate audio to last n seconds or pad with zeros to meet n seconds."""
|
||
|
|
max_samples = n_seconds * sample_rate
|
||
|
|
if len(audio_array) > max_samples:
|
||
|
|
return audio_array[-max_samples:]
|
||
|
|
elif len(audio_array) < max_samples:
|
||
|
|
# Pad with zeros at the beginning
|
||
|
|
padding = max_samples - len(audio_array)
|
||
|
|
return np.pad(audio_array, (padding, 0), mode='constant', constant_values=0)
|
||
|
|
return audio_array
|