2

私はPHPの経験が豊富ですが、「post」のようにサーバー間の接続に常に問題があります。Googleの音声認識APIサーバーに投稿する必要のあるFLACオーディオファイルがあります。その反応を「聞く」方法もわかりません。この種の関数が存在すると仮定して、そのようなスクリプトが欲しいです:

<?php

   $fileId = $_GET['fileId'];
   $filepath = $fileId . ".flac";
   recognize($filepath);

  function recognize($pathToFile) {

      //It's the following function that I'm looking for 
      $response = $pathToFile->post("http://www.google.com/speech-api/v1/.....&client=chromium"); 

      //The $response would be the short JSON that Google feed back.
      echo $response;

  }

?>

編集

チュートリアルに従って、Wget--postを使用してFLACファイルを投稿するシェルスクリプトを作成しました。このように投稿したいのですが、PHPで。また、コマンドの最後にこの> answer.ret行があるので、Googleの回答がこのファイルに書き込まれます。PHPに別の方法があるのではないかと思っていました。コマンドラインは次のとおりです。

wget -q -U "Mozilla/5.0" --post-file audio1.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=fr-fr&client=chromium" > trancription1.ret

編集2

@hakreの答えを使って、その方法を理解し、好奇心旺盛な人々のためにちょっとした要点を焼き上げました。ここにあります:https ://gist.github.com/chlkbumper/4969389 。FLACファイルは16kビットレートのFLACでなければならないことを忘れないでください

4

1 に答える 1

1

POST リクエストは、POST メソッドが指定されているだけの標準的な HTTP リクエストです。HTTP リクエストと HTTP レスポンスの残りの部分はほとんど同じです。

ところで、HTTP 応答の形式で要求の応答を取得します。これは、RFC 2616で定義されている完全に正常です。このドキュメントに関連付けるだけで、すべてが説明されます。

HTTP リクエストを送信する PHP の関数は でfile_get_contents、リクエストのレスポンスを返します。これは、POST リクエストを送信するために必要ないくつかのオプションを提供する HTTP ストリーム ラッパーを介して行われます (デフォルトは GET)。HTTP コンテキスト オプションを参照してください。

HTTP リクエストを送信するためのもう 1 つの一般的な PHP 拡張機能は、Curl バインディングです。

于 2012-12-23T01:24:59.270 に答える