dlaiu commited on
Commit
e1503ef
·
1 Parent(s): ea19a0e
Files changed (1) hide show
  1. app.py +14 -13
app.py CHANGED
@@ -3,20 +3,21 @@ import parselmouth
3
  from parselmouth.praat import call
4
  import numpy as np
5
 
6
- # def greet(name):
7
- # return "Hello " + name + "!!"
8
-
9
- # demo = gr.Interface(fn=greet, inputs="text", outputs="text")
10
- # demo.launch()
11
-
12
-
13
  def get_pitch(audio_data):
14
- rate, data = audio_data # Assuming Gradio passes (sampling_rate, numpy_array)
15
- sound = parselmouth.Sound(values=np.array(data, dtype='float64'), sampling_frequency=rate)
16
- pitch = call(sound, "To Pitch", 0.0, 75, 500)
17
- pitch_values = pitch.selected_array['frequency']
18
- return "Pitch frequencies: " + str(pitch_values)
 
 
 
 
 
 
 
 
 
19
 
20
  demo = gr.Interface(fn=get_pitch, inputs="audio", outputs="text")
21
  demo.launch()
22
-
 
3
  from parselmouth.praat import call
4
  import numpy as np
5
 
 
 
 
 
 
 
 
6
  def get_pitch(audio_data):
7
+ rate, data = audio_data
8
+ if data.ndim > 1: # Check if the audio is stereo or multi-channel
9
+ data = np.mean(data, axis=1) # Convert to mono by averaging channels
10
+
11
+ # Convert data to float64 for compatibility with Parselmouth
12
+ data = data.astype('float64')
13
+
14
+ sound = parselmouth.Sound(values=data, sampling_frequency=rate)
15
+ try:
16
+ pitch = call(sound, "To Pitch", 0.0, 75, 500)
17
+ pitch_values = pitch.selected_array['frequency']
18
+ return "Pitch frequencies: " + str(pitch_values)
19
+ except Exception as e:
20
+ return "Error in pitch extraction: " + str(e)
21
 
22
  demo = gr.Interface(fn=get_pitch, inputs="audio", outputs="text")
23
  demo.launch()