Mercurial Hosting > lang
view src/stt.js.luan @ 53:6c78fd83518f
add delete course
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 17 Aug 2025 16:59:37 +0900 |
parents | d3f5448743bf |
children | f5e72f2d1025 |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local Parsers = require "luan:Parsers.luan" local json_string = Parsers.json_string or error() local json_parse = Parsers.json_parse or error() local Io = require "luan:Io.luan" local uri = Io.uri or error() local Http = require "luan:http/Http.luan" local Config = require "site:/private/Config.luan" local key = Config.chatgpt.key or error() local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "sst.js" -- https://platform.openai.com/docs/guides/speech-to-text local url = "https://api.openai.com/v1/audio/transcriptions" local headers = { Authorization = "Bearer "..key ["Content-Type"] = "multipart/form-data" } local function speech_to_text(audio) local options = { method = "POST" headers = headers enctype = "multipart/form-data" parameters = { model = "whisper-1" file = audio } } local json = uri(url,options).read_text() -- logger.info(json) local result = json_parse(json) return result.text or error() end return function() local audio = Http.request.parameters.audio or error() local text = speech_to_text(audio) Io.stdout = Http.response.text_writer() %> setText(<%=json_string(text)%>); <% end