Hetan07's picture
Added the modules and the required models
6a527e0
raw
history blame
No virus
1.41 kB
import pydub
from pydub import AudioSegment
import feature_extraction
import io
def split_audio(uploaded_file):
# Load your audio file
# audio = AudioSegment.from_file("classical.00000.wav", format="wav")
audio = AudioSegment.from_file(uploaded_file,)
# Define the duration of each segment in milliseconds (3 seconds)
segment_duration = 3 * 1000 # 3 seconds in milliseconds
# Check the total duration of the audio
audio_duration = len(audio)
# Check if the audio is shorter than 1 minute and 3 seconds
if audio_duration < 63 * 1000:
# If it's shorter, take audio from 0 to 3 seconds
segment = audio[:segment_duration]
else:
# If it's longer, take audio from 1 minute to 1 minute 3 seconds
start_time = 60 * 1000 # 1 minute in milliseconds
end_time = start_time + segment_duration
segment = audio[start_time:end_time]
output_stream = io.BytesIO()
segment.export(output_stream, format="wav")
# Now you can directly use the output_stream for feature extraction
output_stream.seek(0) # Reset the stream position to the beginning
# Process and extract features from the segment
features = feature_extraction.all_feature_extraction(output_stream)
return features
# output_file = "D:/miniproject/output_segment.wav"
# Save the segment to a new file
# segment.export(output_file, format="wav")