bugfix> curl > 投稿

私の目標は、音声合成アプリを作成することです。私は使用していますテキスト読み上げ用のGoogleクイックスタートチュートリアル 。最初の6つの手順を実行しました。チュートリアルの「テキストからオーディオを合成する」セクションにこだわっています。チュートリアルからコピーしたコードを実行してコンソールに貼り付けると、エラーが発生します。

コピーされたコード

curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) -H "Content-Type: application/json; charset=utf-8" --data "{
  'input':{
    'text':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.'
  },
  'voice':{
    'languageCode':'en-gb',
    'name':'en-GB-Standard-A',
    'ssmlGender':'FEMALE'
  },
  'audioConfig':{
    'audioEncoding':'MP3'
  }
}" "https://texttospeech.googleapis.com/v1beta1/text:synthesize" > synthesize-output.txt

これは、コードの実行によるコンソール上の出力です。  

C:\Users\user\AppData\Local\Google\Cloud SDK>curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) -H "Content-Type: application/json; charset=utf-8" --data "{
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
curl: (6) Could not resolve host: print-access-token)
C:\Users\user\AppData\Local\Google\Cloud SDK>  'input':{
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>    'text':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.'
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>  },
'}' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\user\AppData\Local\Google\Cloud SDK>  'voice':{
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>    'languageCode':'en-gb',
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>    'name':'en-GB-Standard-A',
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>    'ssmlGender':'FEMALE'
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>  },
'}' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\user\AppData\Local\Google\Cloud SDK>  'audioConfig':{
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>    'audioEncoding':'MP3'
The filename, directory name, or volume label syntax is incorrect.
C:\Users\user\AppData\Local\Google\Cloud SDK>  }
'}' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\user\AppData\Local\Google\Cloud SDK>}" "https://texttospeech.googleapis.com/v1beta1/text:synthesize" > synthesize-output.txt
'}" "https:' is not recognized as an internal or external command,
operable program or batch file.

これが役立つかどうかはわかりませんが、gcloud config listの出力は次のとおりです。

C:\Users\user\AppData\Local\Google\Cloud SDK>gcloud config list
[core]
account = text-to-speechaccount@sage-instrument-201620.iam.gserviceaccount.com
disable_usage_reporting = False
project = sage-instrument-201620
Your active configuration is: [default]

その他の情報 私はPythonに最も精通しています。私は自分のスキルを初心者として説明します。ウィンドウ10を実行しています。

回答 2 件
  • この例は、UNIXに優しいシステム用に作成されたように見えます。これらのシステムは、「\」を使用して複数行のコマンドを分割します。正しく覚えていれば、Windowsはキャレット「^」を使用してまったく同じことを行います。その例の\をすべて^に置き換えて、動作するかどうかを確認します。

  • あなたの主な問題は、次のメッセージに関連しています:「curl:(6)ホストを解決できませんでした:print-access-token)」これは、Windowsが$variable表記を認識しないために発生するため、2つの方法があります続行できます:

    最初のアプローチ:

    まず、コマンド「gcloud auth application-default print-access-token」を実行し、トークン値をクリップボードにコピーします。

    トークン値をcurl実行に直接貼り付けます。次に例を示します。

    curl -H "承認:Bearer ya29.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -H "Content-Type:application/json;charset = utf-8" --data "{'input':{'text': 'Androidは開発されたモバイルオペレーティングシステムですLinuxカーネルに基づいており、主にスマートフォンやタブレットなどのタッチスクリーンモバイルデバイス用に設計されたGoogleによる。 }、 'voice':{'languageCode': 'en-gb'、 'name': 'en-GB-Standard-A'、 'ssmlGender': 'FEMALE'}、 'audioConfig':{'audioEncoding': ' MP3 '}} "" https://texttospeech.googleapis.com/v1beta1/text:synthesize "> compose-text.txt

    Windowsはこの種の文字を十分に認識しないため、逆スラッシュ()を削除してください。

    2番目のアプローチ:

    前述のコマンド(gcloud auth application-default print-access-token)を実行し、値を環境変数に保存します。

    TOKEN = the_value_of_your_tokenを設定します

    curl呼び出しでトークン環境変数の参照を使用します。

    curl -H "Authorization:Bearer%TOKEN%" -H "Content-Type:application/json;charset = utf-8" --data "{'input':{'text': 'Androidは開発されたモバイルオペレーティングシステムですLinuxカーネルに基づいており、主にスマートフォンやタブレットなどのタッチスクリーンモバイルデバイス用に設計されたGoogleによる。 }、 'voice':{'languageCode': 'en-gb'、 'name': 'en-GB-Standard-A'、 'ssmlGender': 'FEMALE'}、 'audioConfig':{'audioEncoding': ' MP3 '}} "" https://texttospeech.googleapis.com/v1beta1/text:synthesize "> compose-text.txt

あなたの答え