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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2065閲覧

Google Speech APIで長時間の音声を認識させたい

tansen14

総合スコア15

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2017/12/27 18:40

###長時間の音声データを一発で認識させたい
私は現在、Google Speech APIを用いて、音声認識のテストを行っています。
無知ながら独自に用意した15秒前後の音声は無事認識に成功することができました。

その際に、下記リンクのquick.phpを利用していました。
https://github.com/GoogleCloudPlatform/php-docs-samples/tree/master/speech

今度は少し長めの音声を認識させてみたかったのですが、
調べたところ非同期通信での認識がいいと書いてあったので
speech.phpを使い、対応することにしました。
しかし、エラーがでて分からなくなってしまったので
解決策を教えてください。

###実行とエラーメッセージ
linuxでのコマンドは以下です。

linux

1php speech.php transcribe-async resources/sample.wav --encoding LINEAR16 --language-code ja-JP --sample-rate 16000

sample.wavは10分ほどの音声データになります。

[Google\Cloud\Core\Exception\BadRequestException] { "error": { "code": 400, "message": "Request payload size exceeds the limit: 10485760 bytes.", "status": "INVALID_ARGUMENT" } }

###試したこと
音声を分割してみましたが、1分を超えるとダメみたいです。
使用制限に

"Google Cloud Storage で音声ファイルを参照する場合、1 分よりも長い音声には uri フィールドを使用する必要があります。"

と書いてあったので、こちらが関係してくるのでしょうか?

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sample.wav のファイルサイズは、どれぐらいでしょうか?
wav のレートから考えると 約100MB ぐらいでしょうか?

エラーメッセージからすると 直接送信するファイルサイズは、約10MB がリミットのようです。

API 的な制限は、非同期リクエストは、80分とあるので、説明にある通り、ファイルサイズが大きい場合、uri フィールドを使う必要があるのではないでしょうか。

ドキュメント Cloud Speech API の基本 にも

content にはリクエスト内に埋め込まれた、評価対象の音声が含まれます。詳細については、後述の音声コンテンツの埋め込みをご覧ください。このフィールド内で直接渡される音声は、時間が 1 分に制限されます。

とありますので、埋め込まれた(=直接Postできる)ファイルサイズは、1分(10MB)で制限されているようです。

投稿2017/12/28 02:01

編集2017/12/28 02:09
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tansen14

2017/12/28 02:13

回答ありがとうございます。 調べてみたところ 非同期リクエストはGoogle Cloud Storageにデータを置いておく必要があるみたいですね! uriフィールドをよく理解できていないので、教えていただけませんか?
CHERRY

2017/12/28 02:23

speech.php を使うのであれば、ファイル名を記載していた部分が、バケットのオブジェクトへのパスになります。具体的には、バケットにアップロードした際の「バケット名」と「ファイル名」を使って、「gs://バケット名/ファイル名」とします。
tansen14

2017/12/28 02:42

ありがとうございます! 実行してみたところ、エラーの状況が変わりました。 もしよろしければ、 [Google\Cloud\Core\Exception\ServiceException] { "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } } こちらに対する解決策も教えていただけませんでしょか...
CHERRY

2017/12/28 02:54 編集

バケットのファイルに対するアクセス制限(ACL)は、どうなっていますか? (バケットのデフォルトは、メンバー以外は非公開ファイルだったと思います。) https://cloud.google.com/speech/docs/basics?hl=ja#uri-audio に記載がありますが、「Google Cloud Storage ファイルを読み取るには、次のいずれかの適切なアクセス許可が必要です。」とあります。 とりあえずのテストであれば、読み取り専用一般公開として、バケットの ACL に publicRead を追加してください。( https://cloud.google.com/storage/docs/access-control/lists?hl=ja#predefined-project-private )
tansen14

2017/12/28 03:09

分かりやすくしていただき、本当にありがとうございます。 重ねて申し訳ないのですが、 実行中に [Exception] Job has not yet completed このようなエラーで止まってしまいます。 調べてみたのですが、分からなくて こちらの解決法はいかがでしょうか・・・?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問