音声からテキストへの文字起こし(Speech to Text とも呼ばれます)は OpenAI API を使用すると非常に簡単です。mp3、mp4、mpeg、mpga、m4a、wav、webm のいずれかの形式で音声ファイルをアップロードするだけで、API が文字列を返します。
文字起こし Delphi サンプル
OpenAI はリクエストの構築を必要とします。音声ファイル、モデル、温度(出力のランダム性を調整)などを渡します。利用可能なパラメーターの一覧を以下に示します。
- Filename:(必須) 文字起こしする音声ファイル(形式: mp3、mp4、mpeg、mpga、m4a、wav、webm のいずれか)。
- Model:(必須) 使用するモデルの ID。現在利用可能なのは whisper-1 のみです。
- Prompt: モデルのスタイルを誘導したり、前の音声セグメントを継続したりするためのオプションのテキスト。プロンプトは音声の言語に合わせてください。
- ResponseFormat: 文字起こし出力の形式(json、text、srt、verbose_json、vtt のいずれか)。
- Temperature: サンプリング温度(0〜1)。0.8 のような高い値は出力をよりランダムにし、0.2 のような低い値はより集中的で決定論的にします。0 に設定すると、特定のしきい値に達するまでモデルが対数確率を使って自動的に温度を上げます。
- Language: 入力音声の言語。ISO-639-1 形式で指定すると精度とレイテンシーが向上します。
以下は whisper-1 を使用して音声ファイルを文字起こしする簡単な例です。
procedure DoFileTranscription(const aFilename: string);
var
oRequest: TsgcOpenAIClass_Request_Transcription;
oResponse: TsgcOpenAIClass_Response_Transcription;
begin
oRequest := TsgcOpenAIClass_Request_Transcription.Create;
Try
oRequest.Filename := aFilename;
oRequest.Model := 'whisper-1';
oResponse := OpenAI.CreateTranscriptionFromFile(oRequest);
Try
DoLog(oResponse.Text);
Finally
oResponse.Free;
End;
Finally
oRequest.Free;
End;
end;

以下に、sgcWebSockets OpenAI Delphi ライブラリを使用した Windows 向けコンパイル済みデモを示します。
