pm6six commited on
Commit
56ce390
·
verified ·
1 Parent(s): 146185e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -12
app.py CHANGED
@@ -27,26 +27,28 @@ if st.button("Generate Audio"):
27
  audio_data = f.read()
28
  audio_base64 = base64.b64encode(audio_data).decode()
29
 
30
- # JavaScript-based audio player with speed adjustment
31
  st.markdown(
32
  f"""
33
- <audio id="audio" controls>
34
- <source src="data:audio/wav;base64,{audio_base64}" type="audio/wav">
35
- Your browser does not support the audio element.
36
- </audio>
37
- <br>
38
- <label for="speed">Playback Speed: </label>
39
- <input type="range" id="speed" min="0.5" max="2.0" value="1.0" step="0.1">
40
- <span id="speed-value">1.0x</span>
 
 
41
  <script>
42
- const audioElement = document.getElementById("audio");
43
  const speedSlider = document.getElementById("speed");
44
  const speedValue = document.getElementById("speed-value");
45
 
46
- // Update playback rate and display speed
47
  speedSlider.addEventListener("input", () => {{
48
  const speed = parseFloat(speedSlider.value);
49
- audioElement.playbackRate = speed;
50
  speedValue.textContent = speed.toFixed(1) + "x";
51
  }});
52
  </script>
 
27
  audio_data = f.read()
28
  audio_base64 = base64.b64encode(audio_data).decode()
29
 
30
+ # Use JavaScript-based audio player with playback speed adjustment
31
  st.markdown(
32
  f"""
33
+ <div>
34
+ <audio id="audio" controls>
35
+ <source src="data:audio/wav;base64,{audio_base64}" type="audio/wav">
36
+ Your browser does not support the audio element.
37
+ </audio>
38
+ <br>
39
+ <label for="speed">Playback Speed:</label>
40
+ <input type="range" id="speed" min="0.5" max="2.0" value="1.0" step="0.1">
41
+ <span id="speed-value">1.0x</span>
42
+ </div>
43
  <script>
44
+ const audio = document.getElementById("audio");
45
  const speedSlider = document.getElementById("speed");
46
  const speedValue = document.getElementById("speed-value");
47
 
48
+ // Update playback speed dynamically
49
  speedSlider.addEventListener("input", () => {{
50
  const speed = parseFloat(speedSlider.value);
51
+ audio.playbackRate = speed;
52
  speedValue.textContent = speed.toFixed(1) + "x";
53
  }});
54
  </script>