2023-03-14 08:43:46
Re②:なでしこV1でAPIを使うには
できた~☆ 昨日はv3ではできるのにどうにもv1ではエラーなってうまくいかなくて、なぜ~~~😢 と思っていたんだけど、今朝になったら急に動いたよ?! やっぱなに? 時間が解決してくれる的なオカルト??💦 ・URL POSTするURLは、作成する(?)のではなくて、ドキュメントに書かれているとうりのリクエストURLになります。 https://api.elevenlabs.io/docs#/text-to-speech/Text_to_speech_v1_text_to_speech__voice_id__post 「/v1/text-to-speech/{voice_id}」しか書かれてないケド前の部分は全て「https://api.elevenlabs.io/」だよってことですね。 そして、{voice_id}の部分に、例に挙げられている「21m00Tcm4TlvDq8ikWAM」(レイチェル)とかのidをくっつけた「https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM」がリクエストURLになるということです。 「Try it out」を試してみましたか? コレをやると、このリクエストURLがちゃんと表示されますよ。 ・送信するもの なでしこの「HTTPポスト」は、HEADとBODYを別々に指定することになっています。 http://nadesi.com/man/index.php?HTTP%e3%83%9d%e3%82%b9%e3%83%88 なんか、シロウトは使うなと言わんばかりのご説明で心が折れそうになりますが、がんばりましょう。 このAPIはAPIキーをヘッダに指定する必要があるので、簡易ポストではムリです。 id, apikey, textをどのように送信するかは、APIによって違いますから、ドキュメントを読みましょう。英語だけど、負けません(><)/ ぐーぐる翻訳さんたすけて! ちなみに、先に書いたとうりvoice_id(誰の声を使うか)は、URLになっていましたね。 ・ヘッダ ヘッダになに指定するかも「Try it out」をしてみないと出てこなくてよく分かんないんだよねー。 「accept:audio/mpeg Content-Type:application/json xi-api-key:{xi_apiキー}」 ようするに、取得されるのは「audio/mpeg」mp3で、リクエストbodyの形式は「application/json」JSON文字列で、apiキーもヘッダで指定することになっています。 ・ボディ これは、さいしょから例示されているとうりです。 『{ "text": "string", "voice_settings": { "stability": 0, "similarity_boost": 0 } }』 肝心の送信したいテキストは、textの「string」部分になります。 他の設定項目は、何するもんだか分かりませんケド、省略は不可のようです。とりあえずこのままで行けます。 ・POSTして保存 URLとヘッダとボディが揃ったので、それをHTTPポストするだけ! それをmp3の拡張子で保存するだけで、音声合成のmp3がダウンロードできます☆ で、こんな感じ。 xi_apiキーは、自分のを取得してくださいね~。 #----------------------------------------------------------- #音声ID # https://api.elevenlabs.io/v1/voices レイチェル=「21m00Tcm4TlvDq8ikWAM」 #API設定 voice_id=レイチェル。 URL=「https://api.elevenlabs.io/v1/text-to-speech/{voice_id}」 xi_apiキー=「****」 #送信したいテキスト テキスト=「Hallo」 #ヘッダ(HEAD) ヘッダ=「accept:audio/mpeg Content-Type:application/json xi-api-key:{xi_apiキー}」 //ヘッダを言う。 #データ(BODY) データ=「{波カッコ} "text": "{テキスト}", "voice_settings": {波カッコ} "stability": 0, "similarity_boost": 0 {波カッコ閉じ} {波カッコ閉じ}」 //データを言う。 #ポストして保存 ヘッダとデータでURLへHTTPポスト。 それを「{デスクトップ}テスト.mp3」に保存 #----------------------------------------------------------- |