Simple test script for whisper transcript
This commit is contained in:
commit
ac58b53eba
1 changed files with 70 additions and 0 deletions
70
tavern_talk/playback.py
Normal file
70
tavern_talk/playback.py
Normal file
|
@ -0,0 +1,70 @@
|
|||
import json
|
||||
|
||||
from pydub import AudioSegment
|
||||
from pydub.playback import play
|
||||
|
||||
PATH_TEXT = "./2024-07-29_audio.json"
|
||||
PATH_AUDIO = "./2024-07-29_audio.wav"
|
||||
|
||||
|
||||
def play_audio_segment(file_path, start_time, duration):
|
||||
"""
|
||||
Plays a segment of an audio file starting at `start_time` for `duration` seconds.
|
||||
|
||||
Parameters:
|
||||
- file_path (str): Path to the audio file.
|
||||
- start_time (float): The starting point in seconds.
|
||||
- duration (float): The duration of playback in seconds.
|
||||
"""
|
||||
# Load only the necessary segment of the audio file
|
||||
audio_segment = AudioSegment.from_file(file_path)
|
||||
start_ms = start_time * 1000 # Convert seconds to milliseconds
|
||||
end_ms = start_ms + (duration * 1000)
|
||||
|
||||
# Extract the desired portion of the audio
|
||||
segment = audio_segment[start_ms:end_ms]
|
||||
|
||||
# Play the extracted audio segment
|
||||
play(segment)
|
||||
|
||||
|
||||
segments = []
|
||||
with open(PATH_TEXT, "r") as fp:
|
||||
data = json.load(fp)
|
||||
segments = data["segments"]
|
||||
|
||||
print(f"Transcript {PATH_TEXT} loaded.")
|
||||
|
||||
while True:
|
||||
snippet = input("What are you looking for: ")
|
||||
|
||||
if snippet == "":
|
||||
exit(0)
|
||||
|
||||
print(f"Looking for '{snippet}' ...")
|
||||
targets = []
|
||||
for seg in segments:
|
||||
if snippet.lower() in seg["text"].lower():
|
||||
targets.append(seg)
|
||||
|
||||
# if len(targets) >= 5:
|
||||
# break
|
||||
|
||||
print(f"Found {len(targets)} targets.")
|
||||
if len(targets) == 0:
|
||||
continue
|
||||
|
||||
for i, seg in enumerate(targets):
|
||||
print(f"{i} | {seg['text']}")
|
||||
|
||||
while True:
|
||||
index = input("Index to play: ")
|
||||
if index == "":
|
||||
break
|
||||
|
||||
try:
|
||||
index = int(index)
|
||||
except ValueError:
|
||||
continue
|
||||
|
||||
play_audio_segment(PATH_AUDIO, targets[index]["start"] - 0.5, 5)
|
Loading…
Reference in a new issue