音声、動画ファイルのURLを指定することで、文字起こし結果を取得できるほか
ファインチューニングについて、モデルの作成・取得・更新・削除・再学習を行うことができます。
JAPAN AI SPEECH API仕様について
JAPAN AI SPEECHで提供している機能を REST APIとして利用することができます。
分析対象となる音声、動画のURLを指定し、リクエストを送る事で文字起こしを開始し
文字起こしが完了後、話者分離を行った文字起こし結果をJSON形式で取得することができます。
パラメーターとして、分析対象の言語、利用するエンジン、処理後の音声ファイルの削除が設定可能です。
また、ファインチューニングについて、モデルの作成・取得・更新・削除・再学習を行うことができます。
JAPAN AI SPEECH API仕様
1.リクエスト要件
サーバーへのリクエストは、POST、GET、PATCH、DELETEの各メソッドで行います。
2.レスポンスデータ形式
レスポンスデータのデータ形式は JSON です。
3.文字コード
APIリクエスト及びレスポンスの文字コードは UTF-8 を使用します。
4.APIキーの発行
本APIをご利用いただく際、APIキーをJAPAN AIプラットフォーム上にて発行することが必要になります。
- JAPAN AIプラットフォームより、左下「組織管理」アイコンを選択
- 「SPEECH API」を選択
- 「作成」を押下してください
- 生成されたAPIキーが表示されます
5.共通仕様
認証
APIキーは、リクエストヘッダの x-api-key で指定してください。
Base URL
https://api.japan-ai.co.jp/speech/v1
HTTP ステータスコード
| HTTP ステータス | 意味 |
|---|---|
| 200 OK | リクエスト成功 |
| 201 Created | リソース作成成功 |
| 204 No Content | リソース削除成功 |
| 400 Bad Request | リクエスト不正 |
| 401 Unauthorized | 認証エラー (x-api-key 不正) |
| 403 Forbidden | 権限不足 / 更新不可 |
| 404 Not Found | リソースが存在しない |
| 500 Internal Server Error | サーバー内部エラー |
6.文字起こし開始 (transcription)
音声ファイルのURLを指定して文字起こしを開始します。
API エンドポイント:POST /transcription
リクエストパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
| audioFileUrl | 分析対象となる音声、動画のURL | string | ◯ |
| language |
分析対象の言語 |
string | |
| model |
利用するモデルのID モデルのID取得方法は8.1 モデル一覧取得を参照ください |
string | |
| removeAudio | 処理後に音声ファイルの削除を実施するか 省略された場合、false |
boolean |
リクエスト例
x-api-key: $YOUR_API_KEY
Content-Type: application/json
{
"audioFileUrl": "https://example.com/audio/sample.mp3",
"language": "ja",
"model": "9a8b7c6d-...",
"removeAudio": false
}
レスポンスパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
| id | 文字起こしジョブID | string | ◯ |
| status | ジョブ状態 processing / succeeded / failed / error / done |
string | ◯ |
レスポンス例
{
"id": "9ee3ecfa-fbd6-4c04-b175-cb3c4cb7b4c8",
"status": "processing"
}
7.文字起こし結果取得
指定された id の文字起こし結果を取得します。
文字起こし処理には時間がかかる場合がございます。結果を取得する際は、ポーリング(定期的な確認)を行うことを推奨します。
すなわち、本エンドポイントに対し、レスポンスの status が "succeeded"、"done" もしくは "failed"、"error" になるまで (レスポンスボディの status が "processing" の間は) 一定間隔(例えば 1 秒)おきに繰り返しリクエストを送信してご利用ください。
API エンドポイント:GET /transcription/{id}
リクエストパラメータ
| パラメーター名称 | 説明 | データ型 | 必須 |
| id |
文字起こしの結果を特定するための ID
|
string (uuid) | ◯ |
レスポンスパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
| id | 文字起こし ID | string (uuid) | ◯ |
| status |
処理状態 "processing": 処理中 "succeeded": 成功 "done": 成功(後方互換) "failed": 失敗 "error": 内部エラー |
string | ◯ |
| segments |
文字起こし結果全体
|
Array<Segment> | |
| errorMessage |
エラーメッセージ
|
string |
segments のスキーマ
| パラメーター名称 | 説明 | データ型 | 必須 |
| text | 文字起こしの結果 | string | ◯ |
| language | 分析対象の言語 | string | |
| speaker |
話者分離の結果 SPEAKER_XX の形式で出力する |
string | ◯ |
| start |
当該分析結果の音声ファイル内の開始時刻 秒で表示 |
double | ◯ |
| end |
当該分析結果の音声ファイル内の終了時刻 秒で表示 |
double | ◯ |
レスポンス例 (処理中)
{
"id": "9ee3ecfa-fbd6-4c04-b175-cb3c4cb7b4c8",
"status": "processing"
}
レスポンス例 (成功)
{
"id": "9ee3ecfa-fbd6-4c04-b175-cb3c4cb7b4c8",
"status": "succeeded",
"segments": [
{
"text": "こんにちは!元気ですか?",
"language": "ja",
"speaker": "SPEAKER_00",
"start": 0.18,
"end": 4.00
},
{
"text": "元気です。あなたは?",
"language": "ja",
"speaker": "SPEAKER_01",
"start": 4.46,
"end": 8.91
}
]
}
レスポンス例 (失敗)
{
"id": "9ee3ecfa-fbd6-4c04-b175-cb3c4cb7b4c8",
"status": "failed",
"errorMessage": "音声ファイルの処理に失敗しました。"
}
8. ファインチューニング API
独自の音声認識モデル(以下「モデル」)を 作成・取得・更新・削除・再学習 するための REST API です。 JAPAN AI SPEECHのファインチューニングについては、ファインチューニングの詳細 をご参照ください。
8.1 モデル一覧取得
API エンドポイント:GET /finetuning
所属組織内で作成・アップロード中を含む すべてのモデルのメタデータ情報 を返します
リクエストパラメーター
| パラメーター名 | 説明 | データ型 | 必須 |
|---|---|---|---|
| ― なし ― | |||
レスポンスパラメーター
| パラメーター名 | 説明 | データ型 | 必須 |
|---|---|---|---|
| id | モデル ID (UUID) | string | ◯ |
| organizationId | 組織 ID (UUID) | string | ◯ |
| name | モデル名 | string | ◯ |
| status | モデル状態 UPLOADING / PREDICTING / COMPLETED / ERROR |
string | ◯ |
| updatedAt | 最終更新日時 (ISO 8601) | string | ◯ |
レスポンス例
[
{
"id": "7db56092-603d-4d7f-aabb-2755081512af",
"organizationId": "33b8742a-658a-4c78-a4ba-43da174eb6e2",
"name": "カスタムモデル1",
"status": "COMPLETED",
"updatedAt": "2023-10-08T03:12:45.000Z"
}
]
8.2 モデル作成
API エンドポイント:POST /finetuning
指定したデータセットをもとに 新しいモデルを作成 し、学習ジョブをキューに登録します。
リクエストパラメーター
| パラメーター名 | 説明 | データ型 | 必須 |
|---|---|---|---|
| name | モデル名 | string | ◯ |
| dataset | 学習用データセット | array | ◯ |
dataset 要素のスキーマ
| パラメーター名 | 説明 | データ型 | 必須 |
|---|---|---|---|
| word | 単語 (原形) | string | ◯ |
| furigana | 読み (ふりがな) | string | ◯ |
| skip | 学習時に除外する場合 true | boolean |
レスポンスパラメーター
| パラメーター名 | 説明 | データ型 | 必須 |
|---|---|---|---|
| id | モデル ID (UUID) | string | ◯ |
| organizationId | 組織 ID (UUID) | string | ◯ |
| name | モデル名 | string | ◯ |
| status | モデル状態 (UPLOADING / PREDICTING / ERROR / COMPLETED) | string | ◯ |
| updatedAt | 最終更新日時 (ISO 8601) | string | ◯ |
| dataset | 登録済みデータセット | array | ◯ |
レスポンス例
{
"id": "7db56092-603d-4d7f-aabb-2755081512af",
"organizationId": "33b8742a-658a-4c78-a4ba-43da174eb6e2",
"name": "カスタムモデル1",
"status": "PREDICTING",
"updatedAt": "2023-10-07T14:28:16.000Z",
"dataset": [
{ "word": "ありがとう", "furigana": "アリガトウ", "skip": true },
{ "word": "さようなら", "furigana": "サヨウナラ" }
]
}
8.3 モデル詳細取得
API エンドポイント:GET /finetuning/{id}
指定 ID のモデルと、その 現在のデータセット を取得します。
リクエストパラメーター
| パラメーター名 | 説明 | データ型 | 必須 |
|---|---|---|---|
| id | モデル ID (UUID) | string (UUID) | ◯ |
レスポンス
レスポンスパラメーター・レスポンスの構造は 8.2 モデル作成 のレスポンスと同一です。
8.4 モデル更新
API エンドポイント:PATCH /finetuning/{id}
モデルの 名称・データセットを部分的に更新 します。再学習は実行されません。
リクエストパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
|---|---|---|---|
| id | モデル ID (UUID) | string (UUID) | ◯ |
| name | 新しいモデル名 | string | ◯ |
| dataset | 変更後のデータセット (省略可) | array |
レスポンス
レスポンスパラメーター・レスポンスの構造は 8.2 モデル作成 のレスポンスと同一です。
8.5 モデル削除
API エンドポイント:DELETE /finetuning/{id}
指定モデルを 完全に削除 します (復元不可)。
リクエストパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
|---|---|---|---|
| id | モデル ID (UUID) | string (UUID) | ◯ |
レスポンス
成功時は HTTP 204 No Content となり、本文はありません。
8.6 モデル再学習
API エンドポイント:POST /finetuning/{id}/retrain
ERROR または長時間 PREDICTING 状態にあるモデルをリセットし、再学習を行います。
リクエストパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
|---|---|---|---|
| id | モデル ID (UUID) | string (UUID) | ◯ |
レスポンス
レスポンスパラメーター・レスポンスの構造は 8.2 モデル作成 のレスポンスと同一です。
9.文字起こし結果のAI加工(summary)
文字起こし結果をもとに、議事録や要約を作成する REST API です。 JAPAN AI SPEECHのAI加工については、文字起こし結果のAI活用をご参照ください。
利用には文字起こしが完了している必要があります。文字起こしの処理状況は、文字起こし結果取得APIで事前に確認してください。
API エンドポイント:POST /speech/v1/transcription/{id}/summary
パスパラメータ
| パラメーター名称 | 説明 | データ型 | 必須 |
| id | 要約対象の文字起こしID | string (uuid) | ◯ |
リクエストボディ
| パラメーター名称 | 説明 | データ型 | 必須 |
| prompt | 要約生成時の指示やプロンプト | string | |
| additionalFormats | 追加出力フォーマットの指定 配列形式で複数指定可能 |
Array<Object> | |
| model |
使用するLLM 利用可能LLMの例 OpenAI
Anthropic
xAI
|
string |
additionalFormats のスキーマ
| パラメーター名称 | 説明 | データ型 | 必須 |
| format | 出力フォーマット "docx"に対応 |
string | ◯ |
リクエスト例
x-api-key: $YOUR_API_KEY
Content-Type: application/json
{
"prompt": "会議の重要なポイントを3つに絞って要約してください",
"additionalFormats": [
{
"format": "docx"
}
],
"model": "gemini-2.5-flash"
}
レスポンスパラメーター
| パラメーター名称 | 説明 | データ型 | 必須 |
| id | 要約ID | string (uuid) | ◯ |
| summary | 生成された要約テキスト | string | ◯ |
| additionalFormats | 追加フォーマットでの出力結果 | Array<Object> |
additionalFormats のレスポンススキーマ
| パラメーター名称 | 説明 | データ型 | 必須 |
| requestedFormat | リクエストされたフォーマット | string | ◯ |
| fileExtension | ファイル拡張子 | string | ◯ |
| contentType | コンテンツタイプ | string | ◯ |
| isBase64Encoded | Base64エンコードされているかどうか | boolean | ◯ |
| content | ファイルの内容 | string | ◯ |
レスポンス例(成功)
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"summary": "本日の会議では以下の3つの重要なポイントが議論されました。1. 新製品の開発スケジュールについて、来年3月のリリースを目標とすることが決定されました。2. マーケティング戦略として、SNSを活用した宣伝活動を強化することが合意されました。3. 予算配分について、開発費を20%増額し、品質向上に注力することが承認されました。",
"additionalFormats": [
{
"requestedFormat": "docx",
"fileExtension": "docx",
"contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"isBase64Encoded": true,
"content": "UEsDBBQAAAAIAA..."
}
]
}
エラーレスポンス
404 Not Found - 文字起こし結果が見つからない場合
{
"error": "Transcription not found",
"message": "文字起こしが見つかりません"
}