verbanote-server/verbanote/rp_handler.py

60 lines
1.8 KiB
Python

from pathlib import Path
import runpod
from runpod.serverless import os
import loaders
# import process
output_path:Path = Path(os.environ.get("VERBANOTE_OUTPUT_PATH", "/in"))
input_path:Path = Path(os.environ.get("VERBANOTE_INPUT_PATH", "/out"))
access_token: str = os.environ.get("VERBANOTE_HF_TOKEN", "")
loaders.prep()
# diarize_pipeline = loaders.diarization(access_token)
# whisper_model = loaders.whisper()
def handler(job):
input:dict = job["input"]
url: str | None = input.get("url")
if not url:
return {"error": "no file link provided"}
try:
audiofile = loaders.audiofile(url, input_path=input_path)
except Exception:
return {"error": "audiofile import failed"}
# diarized = process.diarize(audiofile, diarize_pipeline, output_path)
# diarized_groups = process.save_diarized_audio_files(
# diarized, audiofile, output_path
# )
# process.transcribe(
# model=whisper_model, diarized_groups=diarized_groups, output_path=output_path
# )
return {
"speaker_timings": "s3-address-to-speakers",
"transcription_text": "s3-address-to-transcription",
"transcription_page": "web-address-to-deployment",
"audiofile_path": str(audiofile)
}
# speakers = {
# # speaker, textboxcolor, speaker color
# "SPEAKER_00": ("SPEAKER00", "white", "darkgreen"),
# "SPEAKER_01": ("SPEAKER01", "white", "darkorange"),
# "SPEAKER_02": ("SPEAKER02", "white", "darkred"),
# "SPEAKER_03": ("SPEAKER03", "white", "darkblue"),
# "SPEAKER_04": ("SPEAKER04", "white", "darkyellow"),
# "SPEAKER_05": ("SPEAKER05", "white", "lightgreen"),
# "SPEAKER_06": ("SPEAKER06", "white", "lightred"),
# "SPEAKER_07": ("SPEAKER07", "white", "lightblue"),
# }
if __name__ == "__main__":
runpod.serverless.start({"handler": handler})