Spaces:
Sleeping
Sleeping
import os | |
import soundfile as sf | |
import numpy as np | |
def combine_audio_files(folder, index): | |
""" | |
Combine all audio files from the folder and return the concatenated audio data. | |
Args: | |
- folder (str): Path to the folder containing the .wav files. | |
- index (int): The index of the last file to be concatenated. | |
Returns: None | |
""" | |
# Get a sorted list of .wav files by their numeric names | |
wav_files = sorted( | |
[os.path.join(folder, f) for f in os.listdir(folder) if f.endswith(".wav")], | |
key=lambda x: int(os.path.splitext(os.path.basename(x))[0]), | |
) | |
# Raise an error if no .wav files are found | |
if not wav_files: | |
raise ValueError("No .wav files found in the input folder.") | |
# Combine all .wav files | |
audio_data = [] | |
samplerate = None | |
for wav_file in wav_files[:index+1]: | |
data, samplerate = sf.read(wav_file) | |
audio_data.append(data) | |
os.remove(wav_file) # Clean up each file after reading | |
# Return the concatenated audio data and the sampling rate | |
final_audio = np.concatenate(audio_data) | |
return final_audio, samplerate |