よくある質問
よくあるお問い合わせを記載しています。不明点・ご要望は、お問い合わせへご連絡ください。
1. 共通
Q. mimi に送った音声データは、mimi Server内に保存されますか
無料でのご利用、及び通常の契約では mimi Server 内に保存いたします。音声の保存を希望しないお客様のためにオプションを用意しておりますので、ご希望の場合は契約時にお申し出ください。
2. mimi Auth 関連
Q. Unauthorized や WebSocket connection error unauthorized. (806)が発生します
以下が理由で発生している可能性があります。
- アクセストークンの有効期限(60分)が切れている
- 指定しているスコープが適切ではない
- x-mimi-process の指定が間違っている
- リクエスト件数の上限に達している
アクセストークンの発行方法や、スコープ設定方法、各種 HTTP / WebSocket Service の説明をもとに正しいリクエストが行われているかの確認をお願いします。
Q. アクセストークン発行時、 error : Scope is not defined as client scope. が発生します
以下が理由で発生している可能性があります。
- アプリーケーションおよびクライアントのスコープに該当機能が含まれていない
- アクセストークン発行時のリクエストが適切でない
mimi では、アプリケーション・クライアントそれぞれで利用可能な範囲(スコープ)を決め、その範囲内のリソース・機能に対してアクセストークンが発行できるようになっています。以下、失敗例にある通り、アプリケーション・クライアントのスコープ外のものをアクセストークン発行時の scope に指定したり、権限(grant_type)に対して、適切なスコープ指定ができていない場合はエラーになります。
# アプリケーション・クライアントのスコープ設定で「音声認識」以外を実行範囲として指定してる状態で
# アクセストークンの scope 指定もその範囲内とした場合のリクエスト
curl -X POST https://auth.mimi.fd.ai/v2/token \
-F grant_type="https://auth.mimi.fd.ai/grant_type/client_credentials" \
-F client_id="<applicationId>:<clientId>" \
-F client_secret="<clientSecret>" \
--form-string scope="https://apis.mimi.fd.ai/auth/nict-tra/http-api-service;https://apis.mimi.fd.ai/auth/srs/speaker_groups.r;https://apis.mimi.fd.ai/auth/srs/speaker_groups.w;https://apis.mimi.fd.ai/auth/srs/speakers.r;https://apis.mimi.fd.ai/auth/srs/speakers.w;https://apis.mimi.fd.ai/auth/srs/speeches.r;https://apis.mimi.fd.ai/auth/srs/speeches.w;https://apis.mimi.fd.ai/auth/srs/trainers.r;https://apis.mimi.fd.ai/auth/srs/trainers.w;https://apis.mimi.fd.ai/auth/srs/websocket-api-service;https://apis.mimi.fd.ai/auth/srs/http-api-service"
# レスポンス
{
"operationId": "<operationId>",
"startTimestamp": 1592531961,
"selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>",
"progress": 100,
"code": 200,
"kind": "auth#operation#accesstoken",
"endTimestamp": 1592531961,
"status": "success",
"error": "",
"targetLink": "",
"accessToken": "<accessToken>",
"expires_in": 3600
}
# アプリケーション・クライアントで「音声認識」以外を実行範囲としてスコープ設定してる状態で
# アクセストークンの scope 指定が範囲外となっている場合のリクエスト
# ( https://apis.mimi.fd.ai/auth/asr/websocket-api-service;https://apis.mimi.fd.ai/auth/asr/http-api-service; が範囲外の scope 指定となる)
curl -X POST https://auth.mimi.fd.ai/v2/token \
-F grant_type="https://auth.mimi.fd.ai/grant_type/client_credentials" \
-F client_id="<applicationId>:<clientId>" \
-F client_secret="<clientSecret>" \
--form-string scope="https://apis.mimi.fd.ai/auth/asr/websocket-api-service;https://apis.mimi.fd.ai/auth/asr/http-api-service;https://apis.mimi.fd.ai/auth/nict-tra/http-api-service;https://apis.mimi.fd.ai/auth/srs/speaker_groups.r;https://apis.mimi.fd.ai/auth/srs/speaker_groups.w;https://apis.mimi.fd.ai/auth/srs/speakers.r;https://apis.mimi.fd.ai/auth/srs/speakers.w;https://apis.mimi.fd.ai/auth/srs/speeches.r;https://apis.mimi.fd.ai/auth/srs/speeches.w;https://apis.mimi.fd.ai/auth/srs/trainers.r;https://apis.mimi.fd.ai/auth/srs/trainers.w;https://apis.mimi.fd.ai/auth/srs/websocket-api-service;https://apis.mimi.fd.ai/auth/srs/http-api-service"
# レスポンス
{
"operationId": "<operationId>",
"startTimestamp": 1592531550,
"selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>",
"progress": 100,
"code": 401,
"kind": "auth#operation#accesstoken",
"endTimestamp": 1592531550,
"status": "error",
"error": "Scope is not defined as client scope. => https://apis.mimi.fd.ai/auth/asr/websocket-api-service"
}
# 成功例とほぼ同一のリクエストだが、grant_type に対して不適切な scope が含まれているリクエスト
# (https://apis.mimi.fd.ai/auth/applications.r は デベロッパー権限またはアプリケーション権限でのみ利用可能なスコープであるため、この grant_type では指定できない)
curl -X POST https://auth.mimi.fd.ai/v2/token \
-F grant_type="https://auth.mimi.fd.ai/grant_type/client_credentials" \
-F client_id="<applicationId>:<clientId>" \
-F client_secret="<clientSecret>" \
--form-string scope="https://apis.mimi.fd.ai/auth/nict-tra/http-api-service;https://apis.mimi.fd.ai/auth/srs/speaker_groups.r;https://apis.mimi.fd.ai/auth/srs/speaker_groups.w;https://apis.mimi.fd.ai/auth/srs/speakers.r;https://apis.mimi.fd.ai/auth/srs/speakers.w;https://apis.mimi.fd.ai/auth/srs/speeches.r;https://apis.mimi.fd.ai/auth/srs/speeches.w;https://apis.mimi.fd.ai/auth/srs/trainers.r;https://apis.mimi.fd.ai/auth/srs/trainers.w;https://apis.mimi.fd.ai/auth/srs/websocket-api-service;https://apis.mimi.fd.ai/auth/srs/http-api-service;https://apis.mimi.fd.ai/auth/applications.r"
# レスポンス
{
"operationId": "<operationId>",
"startTimestamp": 1592532095,
"selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>",
"progress": 100,
"code": 401,
"kind": "auth#operation#accesstoken",
"endTimestamp": 1592532095,
"status": "error",
"error": "Scope is not defined as client scope. => https://apis.mimi.fd.ai/auth/applications.r"
}
以下のような方法でスコープ指定が適切であるか確認し、再度アクセストークン発行のリクエストを行ってください。
- アプリケーション・クライアントのスコープを見直す
- 詳細は、3.4. アプリケーションの編集 、4.1. クライアントの登録 を参照
- アクセストークン発行時のリクエストを見直す
Q. 発行したアクセストークンで利用できない機能があります
具体例
- mimi ASR は利用できるが、mimi TTS など他の機能を利用しようとするとエラーが発生してしまう。
- mimi ASR で "x-mimi-process:asr" を指定すると音声認識できるが、"x-mimi-process:nict-asr" を指定するとエラーが発生する。トークンの有効性は確認できている。
この場合、以下が理由で発生している可能性があります。
- アプリーケーションおよびクライアントのスコープに該当機能が含まれていない
- アクセストークン発行時のリクエストが適切でない
この問題を解決するには、「Q. アクセストークン発行時、 error : Scope is not defined as client scope. が発生します」に記載されている内容をお試しください。
3. mimi ASR 関連
Q. リクエスト時送信する音声フォーマットに指定はありますか
WebSocket API Service / HTTP API Serviceの Content-Type
に記載の通りです。
Q. 認識結果が空になります
以下が理由で発生している可能性があります。
--data-binary @FILEPATH
の指定で、@
が入っていない- 完全な無音データを送っている
cURL の場合、ファイルパスの前に @
を記載する必要があるため、以下のようなリクエストになっていないか確認してください。また無音データを送っていないか、音声データを再生するなどして確認してください。
curl https://service.mimi.fd.ai \
-H "Content-Type: audio/x-pcm;bit=16;rate=16000;channels=1" \
-H "x-mimi-process:asr" \
-H "Authorization: Beare <accessToken>
--data-binary audio.raw //@がついていない
# レスポンス
{ "response" : [],
"session_id" : "d2ba5a54-e5ac-11e9-abfd-42010a9200a5",
"status" : "recog-finished",
"type" : "asr#mimilvcsr"
}
Q. 長時間の音声を送信したい時はどうすればよいですか
通信確立後、30 秒でタイムアウトする仕様となっておりますので、それ以上の長さとなる場合は音声を発話単位に短く切り出してリクエストを行ってください。弊社では、音声を発話単位に短く切り出す機能(VAD)が標準で備わったスマートスピーカー Tumbler の販売も行っております。スマートスピーカーを利用した長時間音声認識の実施についてご検討の際は、お気軽にご相談ください。
Q. mimi ASR で句読点を扱うにはどうすればよいですか
現在、mimi ASR では句読点に対応しておりません。
mimi 利用者側で句点を表現する 1 つの方法としては、mimi ASR リクエストの前処理として、音声を発話単位に区切ることと、その認識結果に対して句点を付与することです。発話単位に区切ってリクエストしていただき、認識結果の最後に「。」を付与いただくことで句点を表現いただくことが可能です。
4. mimi TRA 関連
Q. 翻訳結果が /uc774 のように返ってくるのですが、どうすれば正しく表示できますか
翻訳結果の JSON はユニコードエスケープ形式になっています。JSON をパースし、文字列へデコードするようにしてください。以下は cURL で jq コマンドを使って JSON をパースする例です。日本語の「こんにちは」を韓国語に翻訳しています。
実行例
url https://tra.mimi.fd.ai/machine_translation \
-H "Authorization: Bearer <accessToken>" \
-d text=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF \
-d source_lang=ja \
-d target_lang=ko | jq .
応答例
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 115 100 35 100 80 144 329 --:--:-- --:--:-- --:--:-- 473
[
"안녕하세요."
]
5. mimi SRS
Q. 学習データ量が極端に多い話者がいる状態で話者識別実行した場合に、その話者だと識別される確率が高くなることはありますか
学習データが極端に多い人がいた場合でも、認識結果がその人に偏るようなことはありません。
Q. 一つのファイルで二人の話者が会話している音声を話者識別にかけたところ、片方の話者しか識別されませんでした
現状の識別器は入力音声が「一人の話者による音声のみである」と仮定して、話者グループの各話者に対して信頼度を計算します。信頼度が高いほど、入力音声がその話者による発話であることを指します。
複数の話者が入力音声に含まれる場合でも上記のように信頼度を計算してしまいます。
本識別器にとっては想定外の入力となるため、入力音声を1音声1話者に切り分けてもう一度識別にかけてください。
Q. 一つの音声ファイルで複数の話者が会話している場合に、発話区間を検知して、Aさんの発話・Bさんの発話それぞれ取得できるAPIを開発する予定はありますか
直近でのリリース予定はございません。弊社では mimi のビジョンや、お客様のご要望をふまえて開発スケジュールを検討しておりますので、今後こちらのご要望が多ければ、検討させていただきます。お問い合わせからご要望についてのご連絡をお願いいたします。
Q. グループに登録できる話者に理論的、技術的な上限はありますか
理論的には上限はありません。徐々に精度が落ちますが数千人程度までは破綻なく動作します。数万人単位では学術研究も含めて実例はほとんどありません。実用的な登録人数としては 1 グループあたり数 10 名以下を推奨します。
Q. 声の調子を変えて発話した場合に精度に影響はありますか
声の調子を変えて発話する程度では、あまり影響はありません。もし影響が出た場合には、その時の音源をいただけると今後の改善にもつながり大変有難いです。お問い合わせへご連絡ください。
6. mimi API Console 関連
Q. チケットとはなんですか
APIリクエストの上限数を表しています。リクエスト上限については 利用プランをご確認ください。
Updated over 1 year ago