MENU

さくらのAI Engineで音声から文字起こしする

ネットアシスト開発部のyu-kinjoです。今回はさくらのマネージドAI APIサービス「さくらのAI Engine」を利用して、音声ファイルからの文字起こしを試してみたいと思います。これを利用する事で、例えば打ち合わせ内容を録音し、文字起こし~更にLLMで内容をまとめる、といった事を実現できるかと思います。

目次

さくらのAI Engineの文字起こし機能

さくらのAI Engineでは文字起こしに関して「whisper-large-v3-turbo」というモデルのAPIが提供されています。このAPIに対してリクエスト送信を行う事で音声ファイルからの文字起こしができます。また、2016年3月2日現在の料金体系として、1か月あたり50リクエストまで無償の範囲内で文字起こしを試すことができます。それなりの回数が無償の範囲内なのは試しやすくて助かりますね。

さくらのAI Engineの利用準備

さくらのAI Engineの利用準備は以前記事にしました さくらのAI Engineでマネージドな「gpt-oss-120b」をAPI利用する をご参照ください。簡単なステップで利用を開始する事が出来ます。

さくらのAI EngineのAPI管理画面上でリクエストを実行する為のアカウントトークンを得たら、次に実際にリクエストを試していきます。

文字起こしAPIを実行する

音声ファイルは30分、もしくは30MBまでの制限が有ります。ファイル形式としてはMP3やWavなどに対応するとの事なので、1分間あたり概ね1MBとなるビットレート128kbpsのMP3を利用するのが扱いやすいかと思います。

それではHTTP通信を行う curl コマンドでAPIの実行を試してみます。LLMでテキスト回答を得た際とは送信先のURL指定やアップするべきファイルの指定など、パラメータに指定すべき点は異なります。ファイルを送信するので multipart/form-data も指定されています。

回答はJSON形式のテキストで返って来ますので jq コマンドに渡して整形しています。以下の例は、Windows 11の WSL2 上で動作する Ubuntu 24.04 上で実行しています。

$ curl -s --location 'https://api.ai.sakura.ad.jp/v1/audio/transcriptions' \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <<ここにアクセストークンを設定>>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'file=@<<ここにアップすべきファイルのパスを指定>>' \
  --form 'model=whisper-large-v3-turbo' | jq

出力結果:

{
  "text": "何かそうかなと僕も知らないんですよねおー出た出たこれでもう録音が始まってるんですかねレコーディングされていますのあれが出ましたよボローンとはいどうやったらこれちょっと多分これって音声の録音になってるのかな録音じゃなくて録音映像どっちなんだろうどこでやるかも知らないですよね僕もえーと多分録音の方になっているはずでじゃあもうここまでの内容で一旦保存してみますね停止ボタンを押してみますねはいはい",
  "model": "whisper-large-v3-turbo"
}

Zoomを利用した打ち合わせで、久しぶりに録音機能を試そうとした際の1分間ほどの録音データが残っていたので、それを使って試しました。録音機能を利用するためにあたふたしている様子が見て取れますね。

音声ファイルはm4a(AAC)形式を利用しましたが、m4a形式でも問題なく動作するようです。また、この音声ファイルは2名で喋っていますが、そちらについてもとくに問題なく文字起こしされているようです。処理時間としては30秒もかかりませんでした。

句点「、」「。」などで区切ってはくれないようなので、これをさらにLLMで整形してみます。同じくさくらのAI Engineで利用できる gpt-oss-120b に渡して句点を入れるようお願いしてみます。

curl -s --location 'https://api.ai.sakura.ad.jp/v1/chat/completions' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <<ここにアクセストークンを設定>>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-oss-120b",
    "messages": [
      { "role": "system", "content": "AIを使って音声から文字起こしした以下の文章が有ります。文字起こしした文章には句点が含まれていませんので、文章上の適切と思われる個所に句点を挿入してください。 対象の文章ここから:  何かそうかなと僕も知らないんですよねおー出た出たこれでもう録音が始まってるんですかねレコーディングされていますのあれが出ましたよボローンとはいどうやったらこれちょっと多分これって音声の録音になってるのかな録音じゃなくて録音映像どっちなんだろうどこでやるかも知らないですよね僕もえーと多分録音の方になっているはずでじゃあもうここまでの内容で一旦保存してみますね停止ボタンを押してみますねはいはい" }
    ],
    "temperature": 0.7,
    "max_tokens": 2000,
    "stream": false
  }' | jq

出力結果のコンテンツ部分抜粋:

"content": "何かそうかなと僕も知らないんですよね。おー出た出た。これでもう録音が始まってるんですかね。レコーディングされていますの。あれが出ましたよ。ボローンとはい。どうやったらこれちょっと多分これって音声の録音になってるのかな。録音じゃなくて録音映像どっちなんだろう。どこでやるかも知らないですよね。僕もえーと多分録音の方になっているはずで。じゃあもうここまでの内容で一旦保存してみますね。停止ボタンを押してみますね。はいはい。",

より利用しやすい形になりましたね。これを元に議事録を作成していったり、これに対してLLMで更に処理する事も可能でしょう。

まとめ

さくらのAI Engineを利用して音声ファイルからの文字起こし~加工まで実施する事が出来ました。30分以上の音声を利用したい場合には別途検討が必要にはなりますが、範囲内であれば気軽に変換が行えますね。

メリットとしてはLLMの利用と同様にやはり、サーバーを自前で用意する事無くマネージドサービスですぐに利用が可能、かつオープンなモデルで国内で動くサーバーインフラによって提供されるサービスである、というところがメリットになってくるかと思います。

自社システムに音声の文字起こしを組み込む際の選択肢として、さくらのクラウドと併せて検討してみると良いかと思います。

詳細及び最新の情報は以下をご参照ください。
さくらのAI Engine | さくらのAI | さくらインターネット

お問い合わせ

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ネットアシスト開発部の yu-kinjo です。

【取得資格】
・さくらのクラウド検定
・AWS Certified Solutions Architect - Associate
・AWS Certified AI Practitioner
・Oracle 認定Javaプログラマ SE6
・JSTQB テスト技術者資格 ファンデーションレベル
・CIW (Certified Internet Webprofessional) ファンデーション
・XML技術者育成推進委員会 XMLマスター ベーシックV2
・基本情報処理技術者
・初級システムアドミニストレータ

目次