質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.32%

Cloud Speech API を使って文字起こしをしたい。(PHP)

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 465

ayumi88

score 13

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Cloud Speech API初心者です。
PHPを使って、音声データの文字を取得したいです。
どうしてもブランクで、戻ってきてしまいます。

発生している問題・エラーメッセージ

特にエラーメッセージは表示されないのですが、
GCPダッシュボードでは、実行するたびにエラーがカウントされています。
GCPへの接続はできているようなのですが・・・
どうすれば良いか悩んでいます。

該当のソースコード

ソースコード
        $filename = ローカルファイルパス/test.flac';
        $fp = fopen( $filename, 'rb' );
        $content = fread( $fp, filesize( $filename ) );
        fclose( $fp );

        // それをBase64エンコードする
        $encodedContent = base64_encode( $content ); //$contentは、flacの音声データです

        //// JSON形式でリクエスト ボディを生成する
        $requestBody = <<< EOD
        {
          "config": {
            "encoding": "FLAC",
            "sampleRateHertz": 16000,
            "languageCode": "ja-JP",
          },
          "audio": {
              "content" : "{$encodedContent}"
          }
        }
EOD;
$url = 'https://speech.googleapis.com/v1/speech:recognize?key='.$apiKey;

        $header = array( 'Content-Type: application/json; charset=utf-8' );

        $ch = curl_init($url);
        curl_setopt( $ch, CURLOPT_POST, TRUE);
        curl_setopt( $ch, CURLOPT_HTTPHEADER,  $header );
        curl_setopt( $ch, CURLOPT_POSTFIELDS, $requestBody );
        curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt( $ch, CURLOPT_FAILONERROR, TRUE );
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE);

        // リクエストし、結果を出力する
        $result = curl_exec($ch); //この$resultがブランクになってしまう。
        curl_close($ch);
        if ($result == FALSE || $result == '') {
            echo 'エラー';
        } else {
        $result_array = json_decode($result, true);
        print_r($result_array);

        }

試したこと

どうすれば良いか全く検討がつかなくなってしまいました。
どうか、ご教授ください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • papinianus

    2019/01/29 16:55

    私への質問かは分かりませんが、とくに間違いがありそうな風には見えないです。phpでエラーがあったら、表示されるでしょうし。ここで書いても、mts10806様と私にしか通知が来ないので、質問を改めたほうがいいと思います。

    キャンセル

  • ayumi88

    2019/01/29 16:59

    ありがとうございます!
    改めてに質問するようにします。

    キャンセル

  • papinianus

    2019/01/29 17:06

    質問を編集するって意味ですよ??

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る