Mercurial Hosting > lang
comparison src/stt.js.luan @ 69:f5e72f2d1025
add stt_prompt
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 23 Aug 2025 07:07:59 -0600 |
parents | d3f5448743bf |
children |
comparison
equal
deleted
inserted
replaced
68:a366d27db8f1 | 69:f5e72f2d1025 |
---|---|
18 local headers = { | 18 local headers = { |
19 Authorization = "Bearer "..key | 19 Authorization = "Bearer "..key |
20 ["Content-Type"] = "multipart/form-data" | 20 ["Content-Type"] = "multipart/form-data" |
21 } | 21 } |
22 | 22 |
23 local function speech_to_text(audio) | 23 local function speech_to_text(audio,prompt) |
24 local options = { | 24 local options = { |
25 method = "POST" | 25 method = "POST" |
26 headers = headers | 26 headers = headers |
27 enctype = "multipart/form-data" | 27 enctype = "multipart/form-data" |
28 parameters = { | 28 parameters = { |
29 model = "whisper-1" | 29 model = "whisper-1" |
30 file = audio | 30 file = audio |
31 prompt = prompt | |
31 } | 32 } |
32 } | 33 } |
33 local json = uri(url,options).read_text() | 34 local json = uri(url,options).read_text() |
34 -- logger.info(json) | 35 -- logger.info(json) |
35 local result = json_parse(json) | 36 local result = json_parse(json) |
36 return result.text or error() | 37 return result.text or error() |
37 end | 38 end |
38 | 39 |
39 return function() | 40 return function() |
40 local audio = Http.request.parameters.audio or error() | 41 local audio = Http.request.parameters.audio or error() |
41 local text = speech_to_text(audio) | 42 local prompt = Http.request.parameters.prompt or error() |
43 local text = speech_to_text(audio,prompt) | |
42 Io.stdout = Http.response.text_writer() | 44 Io.stdout = Http.response.text_writer() |
43 %> | 45 %> |
44 setText(<%=json_string(text)%>); | 46 setText(<%=json_string(text)%>); |
45 <% | 47 <% |
46 end | 48 end |