Spaces:
Running
Running
Amlan-109
feat: Initial commit of LocalAI Amlan Edition with premium branding and personalization
750bbe6 | package format | |
| import ( | |
| "fmt" | |
| "strings" | |
| "time" | |
| "github.com/mudler/LocalAI/core/schema" | |
| ) | |
| func TranscriptionResponse(tr *schema.TranscriptionResult, resFmt schema.TranscriptionResponseFormatType) string { | |
| var out string | |
| if resFmt == schema.TranscriptionResponseFormatLrc { | |
| out = "[by:LocalAI]\n[re:LocalAI]\n" | |
| } else if resFmt == schema.TranscriptionResponseFormatVtt { | |
| out = "WEBVTT" | |
| } | |
| for i, s := range tr.Segments { | |
| switch resFmt { | |
| case schema.TranscriptionResponseFormatLrc: | |
| m := s.Start.Milliseconds() | |
| out += fmt.Sprintf("\n[%02d:%02d:%02d] %s", m/60000, (m/1000)%60, (m%1000)/10, strings.TrimSpace(s.Text)) | |
| case schema.TranscriptionResponseFormatSrt: | |
| out += fmt.Sprintf("\n\n%d\n%s --> %s\n%s", i+1, durationStr(s.Start, ','), durationStr(s.End, ','), strings.TrimSpace(s.Text)) | |
| case schema.TranscriptionResponseFormatVtt: | |
| out += fmt.Sprintf("\n\n%s --> %s\n%s\n", durationStr(s.Start, '.'), durationStr(s.End, '.'), strings.TrimSpace(s.Text)) | |
| case schema.TranscriptionResponseFormatText: | |
| fallthrough | |
| default: | |
| out += fmt.Sprintf("\n%s", strings.TrimSpace(s.Text)) | |
| } | |
| } | |
| return out | |
| } | |
| func durationStr(d time.Duration, millisSeparator rune) string { | |
| m := d.Milliseconds() | |
| return fmt.Sprintf("%02d:%02d:%02d%c%03d", m/3600000, m/60000, int(d.Seconds())%60, millisSeparator, m%1000) | |
| } | |