File size: 1,411 Bytes
6a527e0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
28
29
30
31
32
33
34
35
36
37
38
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")