はじめに
AmiVoice API は音声をテキストに変換する音声認識APIです。音声を送信すると、発話内容をテキストにした結果を返します。会議の文字起こしや音声対話システムなどの音声対応アプリケーションを作成できます。
ドキュメンテーションの構成
導入前のセキュリティや運用のための情報は「導入・運用ガイド」、実装の詳細は「開発ガイド」、API仕様の確認は「リファレンス」、お困りの際は「ヘルプ」のセクションを参照してください。
📄️ 導入・運用ガイド
セキュリティ・コンプライアンス・運用に必要な情報をまとめています。
📄️ 開発ガイド
目的に合わせたAPIの使い方、リクエスト、レスポンスなどの開発に必要な詳細情報を説明します。
📄️ リファレンス
APIリファレンス
📄️ ヘルプ
トラブルシューティングや問い合わせの方法
クイックスタート
APPKEY を取得する
ユーザー登録ページから登録し、マイページの[接続情報]に表示される APPKEY を控えてください。次のコマンドで環境変数に設定します。
- macOS / Linux
- Windows (PowerShell)
- Windows (コマンドプロンプト)
export APPKEY=your_appkey_here
$env:APPKEY = "your_appkey_here"
set APPKEY=your_appkey_here
AmiVoice Tech Blogでは、ユーザー登録を行い、AmiVoice API を使って音声ファイルをテキストに変換するところまでステップバイステップで手順を説明していますので、こちらを参照してください。
音声ファイルを用意する
書き起こしたい音声ファイルを用意します。以下のサンプル音声(test.wav)をそのまま使えます。
対応している音声ファイルの形式については音声フォーマットについてを参照してください。
音声認識を実行する
以下を実行してください。test.wav を使用する音声ファイルのパスに置き換えてください。
- curl (macOS / Linux)
- curl (Windows PowerShell)
- curl (Windows コマンドプロンプト)
- Python
curl https://acp-api.amivoice.com/v1/recognize \
-F d=-a-general \
-F u=$APPKEY \
-F a=@test.wav | jq
curlコマンドがインストールされていない場合、https://curl.se/ からご利用の OS のパッケージをダウンロードするか、パッケージマネージャを利用してcurlをインストールしてください。- 結果テキストはUnicodeエスケープされています。上記コマンドでは、レスポンスを見やすく整形するために
jqを使用しています。jqがインストールされていない場合は、| jqの部分を除いて実行してみてください。jqコマンドは、https://stedolan.github.io/jq/ からご利用の OS のパッケージをダウンロードするか、パッケージマネージャを利用してインストールできます。
curl.exe https://acp-api.amivoice.com/v1/recognize `
-F d=-a-general `
-F u=$env:APPKEY `
-F a=@test.wav | jq
- PowerShell では
curlはInvoke-WebRequestの別名になっているため、curl.exeと明示してください。Windows 10 バージョン 1803 以降にはcurl.exeが標準で含まれています。含まれていない場合は https://curl.se/ からインストールしてください。 - 結果テキストはUnicodeエスケープされています。上記コマンドでは、レスポンスを見やすく整形するために
jqを使用しています。jqがインストールされていない場合は、| jqの部分を除いて実行してみてください。jqコマンドは、https://stedolan.github.io/jq/ からご利用の OS のパッケージをダウンロードするか、パッケージマネージャを利用してインストールできます。
curl https://acp-api.amivoice.com/v1/recognize ^
-F d=-a-general ^
-F u=%APPKEY% ^
-F a=@test.wav
- Windows 10 バージョン 1803 以降には
curlが標準で含まれています。含まれていない場合は https://curl.se/ からインストールしてください。 - 結果テキストはUnicodeエスケープされています。上記コマンドでは、レスポンスを見やすく整形するために
jqを使用しています。jqがインストールされていない場合は、| jqの部分を除いて実行してみてください。jqコマンドは、https://stedolan.github.io/jq/ からご利用の OS のパッケージをダウンロードするか、パッケージマネージャを利用してインストールできます。
import os
import requests
with open("test.wav", "rb") as f:
response = requests.post(
"https://acp-api.amivoice.com/v1/recognize",
data={"d": "-a-general", "u": os.environ["APPKEY"]},
files={"a": f}
)
data = response.json() # JSON パーサーが Unicode エスケープを自動的に日本語に変換します
print(data)
結果を確認する
成功すると以下のような JSON が返ります。text フィールドに書き起こし結果が含まれます。
{
"results": [
{
"tokens": [ ... ],
"confidence": 0.998,
"starttime": 250,
"endtime": 8794,
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。"
}
],
"utteranceid": "20220602/14/018122d637320a301bc194c9_20220602_141433",
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。",
"code": "",
"message": ""
}
詳細なレス ポンスの内容については音声認識の結果を参照してください。
次のステップ
クイックスタートは、同期 HTTP インタフェースを使いました。リアルタイム音源を扱いたい場合はWebSocket インタフェース、15MBを超える大きな音声ファイルを処理したい場合は非同期HTTPインタフェースが利用できます。それぞれのユースケースや使い分けのポイントについては、インタフェースの種類と使い方を参照してください。
📄️ 同期HTTPインタフェース
簡単な実装で、短い音声ファイルの最適
📄️ WebSocket インタフェース
ストリーミング