はじめに
AWS は様々な AI サービスを提供しています
そして、それらのサービスはブラウザから簡単に試せるようになっています
サービス | 機能 | お試し記事 | Elixir 実装例 |
---|---|---|---|
Transcribe | 音声の文字起こし(音声認識) | 参照 | 参照 |
Polly | 文書の読み上げ(音声合成) | 参照 | 参照 |
Lex | チャットボット | 参照 | Coming Soon... |
Translate | 翻訳 | 参照 | 参照 |
Rekognition | 画像認識 顔認識 |
参照 参照 |
参照 |
Textract | 画像からの表データ読込 | 参照 | 参照 |
Bedrock | 生成AIによるチャット、画像生成 | 参照 | 参照 |
本記事では AWS の AI 音声認識サービス Amazon Transcribe をブラウザから試してみます
Amazon Transcribe とは
Amazon Transcribe は音声をテキストに変換する、つまり「音声の文字起こし」=音声認識サービスです
Amazon Transcribe の使い途(ユースケース)
Amazon Transcribe は単に音声を文字にするだけでなく、誰が喋っているのか判別したり、単語を区切ったり、個人情報などを識別したりなど、様々な機能を備えています
Amazon Transcribe の多様な機能を活用することで、以下のような用途に使用可能です
- 会議中に録音した音声から議事録を作る
- 撮影した動画の字幕を作る
- 音声合成サービス Polly などと組み合わせて電話に自動応答する
- 音声から個人情報や不適切な言葉を検出し、マスキングする
Amazon Transcribe の料金
AWS の料金は基本的に従量課金制です
また、リージョン(サービス提供するサーバーが存在する地域)によって料金が異なります
Amazon Transcribe を東京リージョンで使う場合、リアルタイム音声認識なら $0.024 / 分
の料金になります
150 ¥/$
の場合、 ¥3.6 / 分
= ¥216 / 時間
となります
例えば 2 時間の会議をリアルタイム音声認識すれば ¥432 請求されます
ただし、 AWS のサービスの多くには無料利用枠が存在します
無料利用枠
12 か月間、1 か月あたり 60 分
AWS 無料利用枠の一環として、Amazon Transcribe の使用を無料で開始できます。Amazon Transcribe の無料利用枠は、最初の文字起こしリクエストを作成した日から 12 か月間利用できます。
Amazon Transcribe の場合、初めて使ったときから12ヶ月間は1ヶ月に60分までは利用可能なため、本記事で実行する程度の処理であれば無料範囲内に収まります
アカウント作成
Amazon Transcribe を使うためには、 AWS のアカウント作成が必要です
以下の公式手順に従って、アカウントを作成してください
クレジットカードと電話番号が必要になります
予めご用意ください
ブラウザからの音声認識実行
Amazon Transcribe への移動
AWS のマネジメントコンソールにログインすると、以下のような画面が表示されます
この画面から最近使ったサービスなどにアクセスできるようになっています
上メニューにある検索ボックスに transcri
と入力してみましょう
サービスの候補として Amazon Transcribe が表示されます
Amazon Transcribe をクリックして、サービスページに移動しましょう
以下のような画面が表示されます
横文字の意味は以下のように解釈してください
- Transcribe = トランスクライブ = 文字にする = 文字起こし、音声認識する
- トランスクリプション = 文字起こし、音声認識
- トランスクリプト = 文字にしたもの = 文字起こし、音声認識の結果
リアルタイム音声認識の実行
ブラウザから文字起こしを実行してみましょう
右側にあるオレンジ色の「トランスクリプトを作成」のボタンをクリックします
リアルタイムトランスクリプションのページに移動します
このページではマイクで喋った音声をそのまま文字起こししてくれます
まず、下の方にある「言語設定」から「言語」を「日本語、日本(ja-JP)」に変更します
続けて上の方にあるオレンジ色の「ストリーミングを開始」のボタンをクリックしてください
ブラウザがマイクの使用について許可を求めてきます(画像は Chrome の場合)
「許可をする」をクリックしてください
すると、ボタンの文字が「ストリーミングを停止」に変わります
この状態でマイクに喋ると、「トランスクリプション出力」の欄に喋った内容がリアルタイムで表示されます
喋り終わったら「ストリーミングを停止」ボタンをクリックして終了します
「完全なトランスクリプションをダウンロードする」をクリックすると、音声認識の詳細な内容が JSON という形式でダウンロードできます
[
{
"Transcript": {
"Results": []
}
},
{
"Transcript": {
"Results": []
}
},
{
"Transcript": {
"Results": []
}
},
{
"Transcript": {
"Results": [
{
"Alternatives": [
{
"Items": [
{
"Content": "昔",
"EndTime": 1.485,
"StartTime": 1.0375,
"Type": "pronunciation",
"VocabularyFilterMatch": false
}
],
"Transcript": "昔"
}
],
"ChannelId": "ch_0",
"EndTime": 1.485,
"IsPartial": true,
"ResultId": "7b59326d-dfbc-480b-84f1-242cb10e6b95",
"StartTime": 0.67
}
]
}
},
{
"Transcript": {
"Results": []
}
},
{
"Transcript": {
"Results": [
{
"Alternatives": [
{
"Items": [
{
"Content": "昔",
"EndTime": 1.5375,
"StartTime": 1.0375,
"Type": "pronunciation",
"VocabularyFilterMatch": false
}
],
"Transcript": "昔"
}
],
"ChannelId": "ch_0",
"EndTime": 1.685,
"IsPartial": true,
"ResultId": "7b59326d-dfbc-480b-84f1-242cb10e6b95",
"StartTime": 0.67
}
]
}
},
...
プログラムから Amazon Transcribe を使用する場合、この JSON をプログラムから読み込んでテキストファイルや Web ページに出力することになります
Elixir というプログラミング言語での実装例はこちら
話者のパーティショニング
複数人で喋っているとき、どの発言を誰がしたのか、聞き分けてくれます
議事録を作るときには必須の機能です
リアルタイムトランスクリプションのページで「音声設定」の「話者のパーティショニング」のトグルボタンを ON にしましょう
その状態で2人以上で喋ると、喋った人毎に Speaker01
のような ID が割り当てられて、どの発言が誰のものなのか分けてくれます
Speaker 01: こんにちは。
Speaker 03: こんにちは。
Speaker 01: 今日 は 何 曜日 です か?
Speaker 03: 今日 は 日曜日 です。
コンテンツの削除設定
不適切な発言や個人情報などを自動的にマスキングしてくれる(隠してくれる)機能です
ただし、サポートしている言語が限定されています
2023年11月現在、英語しかサポートされていません
「言語」を「英語、米国(en-US)」に設定します
「PIIの識別とマスキング」のトグルボタンを ON にして、「PII検出対応を選択」で「識別とマスキング」を選択します
この先が成功するかは英語の発音にかかっています
My name is Jhon Smith
(マイネーム イズ ジョン スミス) と喋ってみましょう
日本人の名前は英語として認識してくれない可能性が高いため、ジョン・スミスにしています
実行結果は以下のようになり、個人情報がマスキングされていることがわかります
My name is [NAME].
録音ファイルからの文字起こし
左メニューから「トランスクリプションジョブ」をクリックし、録音した音声ファイルからの文字起こしも可能です
その場合、 S3 という AWS 上のストレージサービス(ファイルの保管場所)に置いてあるファイルを読み込み、結果を S3 に出力します
まとめ
Amazon Transcribe を使って音声の文字起こしができました
喋っている人物の識別や個人情報のマスキングなどを活用すれば、様々な応用も可能ですね