Gladia の文字起こしを API で利用する
Gladia とは
Gladia は Whisper を改善した Whisper-Zero による文字起こしサービスを提供しています。ノイズ除去や話者分離等の機能が追加され、元の Whisper より使いやすいものになっています。
Gladia の管理画面では、コードを書かなくてもすぐに文字起こしを利用できる Playground が提供されているので、非エンジニアにとっても簡単に使えるサービスです。
Playground で提供されている機能
- YouTube等のビデオのリンク、ファイルのアップロード、マイクからのリアルタイム入力による音声データの送信
- 話者分離のON/OFF、翻訳のON/OFFおよび言語指定
- 文字起こし結果の閲覧 ( 語レベルでのタイムスタンプで、該当箇所の音声にジャンプできる )
YouTube等のビデオのリンク、ファイルのアップロード、マイクからのリアルタイム入力による音声データの送信
話者分離のON/OFF、翻訳のON/OFFおよび言語指定
文字起こし結果の閲覧 ( 語レベルでのタイムスタンプで、該当箇所の音声にジャンプできる )
翻訳ONの場合は、翻訳されたテキストでも同様に結果確認ができる
Gladia を API で利用する
Gladia の管理画面で基本的な文字起こしは十分行えるのですが、今回は API で呼び出すことで追加で利用できる機能を確認します。
API による文字起こしの流れ
Gladia の API は V1 から V2 にアップデートされています。V2 API では以下の流れで文字起こしを行います。
- 音声ファイルのアップロード ( 既にURLアクセス可能な形でファイルアップロードが行えている場合は不要 )
- 1.のURLを指定して、文字起こしをリクエスト
- 2.で取得した
ID
を用いて、文字起こし結果を取得
音声ファイルのアップロード
curl --request POST \
--url https://api.gladia.io/v2/upload \
--header 'Content-Type: multipart/form-data' \
--header 'x-gladia-key: [Gladia の API Key]' \
--form audio=@/path/to/your/audio/file.wav
試したところ、アップロードするファイルはmp4
等の動画ファイルにも対応していました。レスポンスとして、audio_url
を取得できます(https://api.gladia.io/file/[id]
)。
文字起こしをリクエスト
curl --request POST \
--url https://api.gladia.io/v2/pre-recorded \
--header 'Content-Type: application/json' \
--header 'x-gladia-key: [Gladia の API Key]' \
--data '{
"audio_url": "[ファイルアップロードの結果取得した audio_url]",
"detect_language": true,
"enable_code_switching": false
}
'
文字起こしをリクエストすると、リクエストのid
を取得できます。このid
を使って文字起こし結果を取得します。
リクエスト時には、様々なパラメーターが設定できます。詳細は、API Reference 参照 (Initiate a transcription)
文字起こし結果を取得
curl --request GET \
--url https://api.gladia.io/v2/pre-recorded/[文字起こしリクエストで取得したid] \
--header 'x-gladia-key: [Gladia の API Key]'
文字起こしは非同期処理なので、実際のアプリケーションでは、ポーリング、Webhook、または Callback を利用して、結果を取得することになります(Get the transcription result)。
Gladia API で利用できる Playground にはない機能
字幕ファイルを取得
以前のSpeech to text APIでは、文字起こしの後処理として行なっていたフォーマットの変換が、API のレスポンスとして直接受け取れるようになったので便利です。この機能は翻訳機能と合わせて利用できるので、翻訳字幕の作成に活用できます。ffmepg
で、srtファイルの字幕を動画に挿入できます。
ffmpeg -i video.mp4 -vf subtitles=transcription.srt video-with-transcription.mp4
話者分離のチューニング ( 2025年2月24日現在、Beta )
number_of_speakers
は2より大きな値にできません。
今後の正式リリースに期待したい機能
- context_prompt
文字起こしに、コンテキストを与えることができる。直近、discordでも質問が上がっているが、現状コンテキストを設定しても、大きな結果の違いは出せていないとのこと。今後、コンテキストで動画の内容や背景を伝えることで、文字起こし精度を向上できるようになることに期待。
- speaker_reidentification
以前の文字起こしの際に特定したスピーカーを、新しい文字起こしでも利用できる ( 同一のIDとして特定できる )。新しいスピーカーが登場すると、新たにユニークなIDを付与して、以降の文字起こしの際に、同一人物として特定できる。
この機能はまだドキュメントにも公開されていませんが、今後のリリースと精度に期待したいです。社内の会議の文字起こしで繰り返し利用する場合、付与されたIDにプロフィールを紐づけておけば、以降話者表示がとてもスムーズになりそうです。
Discussion