初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-11-14 06:13:24

Touga
Guest

cURLオプションの記載方法について

音声ファイルを文字化するサービスとFileMakerを繋げたい。
最後に音声ファイルがないぞとエラーが帰ってくる。それをどう対処したらいいのかがわからない。
ここの過去の質問をみて、cURLのファイルの渡し方を真似したがだめだった。


音声サービスAmivoiceのドキュメントのAPI接続例
curl -X POST https://acp-api-async.amivoice.com/v1/recognitions \
     -F u={APP_KEY} \
     -F d="-a-general"' \
     -F a=@test.wav


ここからが問題、実際FilemakerのURLを挿入でテストする。

スクリプトで
# 録音した音声ファイルのオブジェクトフィールドを設定
変数を設定 [ $音声ファイル ; Value: 録音したオブジェクトフィールド ]
# APIキーの変数を設定
変数を設定 [ $appkey ; Value: テキストフィールド ]

# URLから挿入Lスクリプトを使ってcURLオプションと共にPOSTリクエストを行う
URLから挿入 [ 選択 ; ダイアログあり:オフ ターゲット: $result ; URL: "https://acp-api-async.amivoice.com/v1/recognitions"
; cURL オプション:
"-X POST" &
" -u=\""  & $appKey&"\"" &
" -d=\"-a-medgeneral\""&
" -T $test"
; SSL証明書の検証: On ]



結果は;「{"results":[{"tokens":[],"tags":[],"rulename":"","text":""}],"text":"","code":">","message":"failed to send audio data to recognizer server"}」
音声ファイルがないんだけどとでる。ここの今までのcURLのオプションの質問をみると記述に間違いがなさそう。
なにか誤っている部分があります。
もうしわけありませんがご教授いただけいると助かります。

#2 2023-11-14 08:26:56

himadanee
Guest

Re: cURLオプションの記載方法について

API接続例では
-F a=@test.wav
なのに実際には
-T $test
としてる(FでなくT)のは何故ですか?

「音声ファイルがない」ではなく「音声認識サーバ内での通信に失敗(DSRS への音声データの送信に失敗)」ですね。
しかし、その意味はちょっとわかりません。「内での」というので相手側の落ち度のように読めますが...原因がどこにあるのか
https://docs.amivoice.com/amivoice-api/ … /sync-http
下の方のコードはサーバが混んでるとかデータがどうとか原因が明示されてるので意味が解りますが...
何か送信先の「DSRS」を明示指定するオプションが必要なのかと思いましたが、検索してみてもそういう解説はなさそうでした。

#3 2023-11-14 09:05:29

himadanee
Guest

Re: cURLオプションの記載方法について

あら、そのページの上の方に原因が書いてありました(恥)
>同期/非同期 HTTP 音声認識 API で送信した音声データに音声データが含まれていないとき

やっぱり最初に書いたように、例の通りにーFで送信してみたらどうでしょうか。
見直してみたら他のパラメータもーFが抜けてますね。
注記に以下の記載もありました。
>uはクエリー文字列として送信できますが、通信経路のログなどに残ってしまい漏洩してしまう危険性があるため、必ず HTTP ボディにマルチパート方式で送信してください。

#4 2023-11-15 09:27:17

himadanee
Guest

Re: cURLオプションの記載方法について

Curlのマニュアルで、-Tをhttpで使うのはサーバがPUTに対応している場合だけ、と説明がありました。
https://curl.se/docs/tutorial.html
なので、そこが問題なのは間違いなさそうです。(PUTでなくPOSTなのに-Tを使ってる)
-Fでやってみればいいんでないかな。

#5 2023-11-16 10:28:56

Touga
Guest

Re: cURLオプションの記載方法について

ご回答・ご教授いただきありがとうございます。

色々と再度テストしましたがだめでした。
業者の方にも相談しました。返答は以下の通り
「1. サンプルのcurlではマルチパートでの送信になります。(-F の部分です)
   FileMakerで使用できるcurlコマンドがマルチパートに対応しているのであれば、
   送信するヘッダにはマルチパートであることを示す以下のようなヘッダが付加されるはずです(boundaryの値(文字列)そのものは、異なるものになります)
   Content-Type: multipart/form-data; boundary=------------------------a35dca5b3e05f86
   詳細は、FileMakerのサポートに確認をお願いできますでしょうか。」


色々試すとだめで、気分をかえるためにPOSTMANでテスト。これは問題なし。音声ファイルも問題なし。音声ファイルは業者のテスト用。
curl --location 'https://acp-api.amivoice.com/v1/recognize' \
--header 'Cookie: AWSALBTG=+aDl2w/wOIKHHgzmoz8bfe+g6GZh+/xbODOD2Z28Y5ffC0IOVFaIWCZqssBSoXGD9du6H2aJi49B4uSHTRNoBruTLK3lOMMxgxChXVpnKap/ApWNk5AaP+yxF32RoqQB5Lbqj+VchKpNMVF5mO9Mx/JcnxGeBBION9DQe1d17Gfi; AWSALBTGCORS=+aDl2w/wOIKHHgzmoz8bfe+g6GZh+/xbODOD2Z28Y5ffC0IOVFaIWCZqssBSoXGD9du6H2aJi49B4uSHTRNoBruTLK3lOMMxgxChXVpnKap/ApWNk5AaP+yxF32RoqQB5Lbqj+VchKpNMVF5mO9Mx/JcnxGeBBION9DQe1d17Gfi' \
--form 'u="HImitsuID"' \
--form 'd="-a-general"' \
--form 'a=@"/C:/Users/m/Downloads/test2.wav"'


皆様のご助言通りFileMaker側もテストする。
次を送信するもエラー
"-X POST" &
" -F u=\""  & $appKey&"\"" &
" -F d=\"grammarFileNames=-a-medgeneral\""&
" -F a=@$test"
結果エラー
{"results":[{"tokens":[],"tags":[],"rulename":"","text":""}],"text":"","code":"-","message":"received illegal service authorization"}

chatGPTさんにもきいてテストするがだめ。うーん。
いやー、難しい。

#6 2023-11-16 11:28:24

himadanee
Guest

Re: cURLオプションの記載方法について

POSTMANではcookieも送ってますが、必要なんですか?
必要ならFMでも同様にしないと無理では。

POSTMANでは値と全体とで二重にクオートしてます
--form 'u="HImitsuID"' \
が、二重にしないとだめ?
--form 'u=HImitsuID' \
のようにしても動きますか?

FMの方は、今度は認証エラーになってますね。
" -F u=\""  & $appKey&"\"" &
上とも関連しますが、\"が不要なのでは?サンプルではuの値は囲んでません。

" -F d=\"grammarFileNames=-a-medgeneral\""&
これはdが複数ある場合の形式なので、これでもいいんでしょうけど無理に長くしなくてもPOSTMANのと同じ形でいいのでは。

今頃気づきましたが、最初の投稿で
>変数を設定 [ $音声ファイル ; Value: 録音したオブジェクトフィールド ]
その後使ってる変数$testと変数名が違いますが...

Registered users online in this topic: 0, guests: 1
[Bot] CCBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 518.13 KiB (Peak: 523.03 KiB) ]