Files
voice_recognition/whisper2/lib/whisper.ex

58 lines
1.3 KiB
Elixir

defmodule Whisper do
# use Plug.Router
# require Logger
# plug Plug.Parsers,
# parsers: [:urlencoded, :multipart, :json],
# pass: ["*/*"],
# json_decoder: Jason
# plug :match
# plug :dispatch
# post "/tiny" do
# handle_request(conn)
# end
# post "/large" do
# handle_request_large(conn, Whisper.Large.Serving)
# end
# defp handle_request(conn) do
# upload = conn.params["file"]
# temp_path = decode_audio_from_body(upload)
# try do
# result = Whisper.InferenceRunner.run_inference(temp_path)
# send_resp(conn, 200, Jason.encode!(result))
# after
# File.rm(temp_path)
# end
# end
# defp handle_request_large(conn, serving_name) do
# upload = conn.params["file"]
# temp_path = decode_audio_from_body(upload)
# try do
# result = Nx.Serving.batched_run(serving_name, {:file, temp_path})
# send_resp(conn, 200, Jason.encode!(result))
# after
# File.rm(temp_path)
# end
# end
# defp decode_audio_from_body(%Plug.Upload{path: uploaded_file_path, filename: filename}) do
# unique_name = "uploaded_#{System.unique_integer([:positive])}_#{filename}"
# temp_path = Path.join("uploads", unique_name)
# File.mkdir_p!("uploads")
# File.cp!(uploaded_file_path, temp_path)
# temp_path
# end
end