-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathaudio.go
77 lines (60 loc) · 3.34 KB
/
audio.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package openai_gosdk
const createTranscriptionURL = "https://api.openai.com/v1/audio/transcriptions"
type RequestTranscription struct {
// string Required
// The audio file object (not file name) to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
File *string `json:"file"`
// string Required
// ID of the model to use. Only is currently available.whisper-1
Model *string `json:"model"`
// string Optional
// An optional text to guide the model's style or continue a previous audio segment. The prompt should match the audio language.
Prompt string `json:"prompt,omitempty"`
// string Optional Defaults to json
// The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
ResponseFormat string `json:"response_format,omitempty"`
// number Optional Defaults to 0
// The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability https://en.wikipedia.org/wiki/Log_probability to automatically increase the temperature until certain thresholds are hit.
Temperature float64 `json:"temperature,omitempty"`
// string Optional
// The language of the input audio. Supplying the input language in ISO-639-1 https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes format will improve accuracy and latency.
Language string `json:"language,omitempty"`
}
type ResponseTranscription struct {
Text string `json:"text"`
}
func NewTranscription(baseOpenAI BaseOpenAI, request RequestTranscription) OpenAI[RequestTranscription, ResponseTranscription] {
return OpenAI[RequestTranscription, ResponseTranscription]{
BaseOpenAI: baseOpenAI,
TargetURL: createTranscriptionURL,
Method: POST,
}
}
const createTranslationURL = "https://api.openai.com/v1/audio/translations"
type RequestTranslation struct {
// string Required
// The audio file object (not file name) translate, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
File *string `json:"file"`
// string Required
// ID of the model to use. Only is currently available.whisper-1
Model *string `json:"model"`
// string Optional
// An optional text to guide the model's style or continue a previous audio segment. The prompt should be in English. https://platform.openai.com/docs/guides/speech-to-text/prompting
Prompt string `json:"prompt,omitempty"`
// string Optional Defaults to json
// The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
ResponseFormat string `json:"response_format,omitempty"`
// number Optional Defaults to 0
// The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability https://en.wikipedia.org/wiki/Log_probability to automatically increase the temperature until certain thresholds are hit.
Temperature float64 `json:"temperature,omitempty"`
}
type ResponseTranslation struct {
Text string `json:"text"`
}
func NewTranslation(baseOpenAI BaseOpenAI) OpenAI[RequestTranslation, ResponseTranslation] {
return OpenAI[RequestTranslation, ResponseTranslation]{
BaseOpenAI: baseOpenAI,
TargetURL: createTranslationURL,
Method: POST,
}
}