昨日 作った OpenAI のAPI wrapperで Audio API を利用できるようにしました。
公式のAPIではDefaultのformatがjsonになっていますがverbose_jsonにしてあります。
vtt, srt はまだ対応させていません。

長いデータを投げてないのでわからないですがQueue/WorkerではなくREST APIなので処理長いとタイムアウトしちゃいそうな気がするけどそのあたりどうなんだろう?

使用例

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/ieee0824/gopenai-api/api"
	"github.com/ieee0824/gopenai-api/config"
	"github.com/samber/lo"
)

func main() {
	a := api.New(&config.Configuration{
		ApiKey:       lo.ToPtr("API_KEY"),
		Organization: lo.ToPtr("ORG_ID"),
	})
	f, err := os.Open("test.mp3")
	if err != nil {
		log.Fatalln(err)
	}

	result, err := a.AudioTranscriptionsV1(&api.AudioTranscriptionsV1Input{
		File:     f,
		Model:    lo.ToPtr("whisper-1"),
		Language: lo.ToPtr("ja"),
	})
	if err != nil {
		log.Fatalln(err)
	}
	fmt.Println(result.GoString())
}

制作物