本記事では、Google Cloud Speech-to-Text APIをGoogle Apps Script (GAS)と組み合わせて、音声認識機能を実装する方法を紹介します。
Google Cloud Speech-to-Text APIの概要
Google Cloud Speech-to-Text APIは、音声をテキストに変換するための強力な機械学習サービスです。

このAPIは、多様な言語や方言に対応し、リアルタイムでの音声認識が可能です。
Speech-to-Textの機能
主な特徴は以下の通りです。
- 多言語対応: 100以上の言語と方言をサポート
- リアルタイム認識: ストリーミング音声のリアルタイム処理が可能
- カスタマイズ機能: 特定の単語や語句の認識精度を向上させるモデル適応機能
- 自動フォーマット: 句読点の自動挿入や数字の変換機能
Speech-to-Textの高度な機能
- 話者分離: 複数の話者を識別し、発話者ごとに文字起こしを行う機能
- ノイズ耐性: 様々な環境でのノイズに対応
- ドメイン特化モデル: 音声制御、電話通話、ビデオ転写など、用途に応じた最適化モデルを提供
Speech-to-Textの利用方法
Google Cloud Speech-to-Text APIは、3つの主要な方法で音声認識を実行します。
1. 同期認識
- 1分以内の音声データに適しています
- 音声データを送信し、処理が完了するまで待機します
- 結果はすぐに返されます
2. 非同期認識
- 最大480分の音声データに対応
- 長時間実行操作を開始し、定期的に結果を確認します
- 大量の音声データに適しています
3. ストリーミング認識
- リアルタイムの音声入力に適しています
- マイクからの入力など、ストリーミング音声を処理します
GASとの連携方法
- Google Cloud Platformでプロジェクトを設定し、Speech-to-Text APIを有効にします
- サービスアカウントを作成し、認証情報を取得します
- GASでOAuthライブラリを使用してJWTトークンを生成します
- APIリクエストを送信するコードを実装します


GASプロジェクトを作成
GASプロジェクトを作成し、以下のようなコードを実装します。
APIキーとフォルダIDを適切な値に置き換えます。
function transcribeAudio() {
const folderId = 'あなたのフォルダID'; // 音声ファイルがあるフォルダID
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
while (files.hasNext()) {
const file = files.next();
if (file.getMimeType().indexOf('audio/') > -1) {
const audioContent = Utilities.base64Encode(file.getBlob().getBytes());
const transcript = callSpeechToTextAPI(audioContent);
// 文字起こし結果を新しいドキュメントとして保存
DocumentApp.create(file.getName() + ' - 文字起こし')
.getBody()
.appendParagraph(transcript);
}
}
}
function callSpeechToTextAPI(audioContent) {
const apiKey = 'あなたのAPIキー';
const url = 'https://speech.googleapis.com/v1/speech:recognize?key=' + apiKey;
const payload = {
config: {
encoding: 'LINEAR16',
sampleRateHertz: 16000,
languageCode: 'ja-JP'
},
audio: {
content: audioContent
}
};
const options = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(url, options);
const result = JSON.parse(response.getContentText());
return result.results[0].alternatives[0].transcript;
}
スクリプトを実行すると、指定したフォルダ内の音声ファイルが文字起こしされ、結果が新しいGoogle ドキュメントとして保存されます。

※APIの使用量制限と課金に注意してください。
まとめ
この方法で、GASを使用してGoogle Cloud Speech-to-Text APIと連携し、音声認識機能を実装することができます。
Google Cloud Speech-to-Text APIは、GASと組み合わせることで、強力かつ柔軟な音声認識機能を簡単に実装できます。多言語対応、高精度、リアルタイム認識など、多くの特徴を持つこのAPIは、様々な業界やアプリケーションで活用できる可能性を秘めています。
今後、AIと機械学習の進歩により、さらなる機能の拡張と精度の向上が期待されます。