Google Cloud Text-to-Speechでイケメンボイスを

先日採用活動で動画配信がとても重要と学んでから、動画の作成に勤しんでまいりました。
ようやく短い動画ですが1本できたので発注者様に公開の了承をいただいたのですが・・・

動画の良いところは、読まなくても良いところ。
なのに説明をテロップで表示させていては、結局読むのに一生懸命で映像がぜんぜん入ってこない。

さて、どうしましょう。誰かに読んでもらおうか?と悩んでいましたら、
そう言えば、親会社の大高建設で安全衛生大会の司会を音声生成AIやらでやっていたのを思い出しました。

(無料ってことはないよなぁ~ なんて思いながらポチポチ検索)

有料・無料、色々ありましたが、結局たどり着いたのはみんな大好きGoogle API。
Google Cloud Text-to-Speechは、その名のとおりテキストを音声に変換してくれるのですが、「WaveNet音声」というイケメンボイスでも1か月あたりの無料枠が100万文字もあるとのこと。
(100万文字なんて、どうやったら1か月で超えるのでしょうか?)

さて、問題はどうやって使うのか?ですが、
今の時代、Chat GPTという強力な助っ人がいますからね!
なんだかよく分からなくても使えるようになるものです(笑)
↓↓こんな感じ↓↓(100万文字を超えない程度にお試しください)

※もう少し情報が欲しい方は「追記」をご覧ください

無事、動画にナレーションを入れることができました。
動画の尺にあわせると、パッツンパッツンの早口になってしまいましけどね。。。

追記(ChatGPTの回答例など)

キーワード検索で訪問される方が結構いらっしゃるようなので、目的としているものと合致しているか分かりませんが、もう少し詳しく書いておきます。

●プロンプト入力例(ここからスタートしました)
xampp※でcloud text-to-speechを使用して音声mp3として保存したい。 テキストデータは、HTMLフォームで入力したい。 音声はja-JP-Standard-D。 再生速度は1.25。

※xamppは、windowsのローカル環境にPHPを実行できるwebサーバーを構築できるアプリです

●ChatGPTの回答例
XAMPPを使用してCloud Text-to-Speech(TTS)を組み込んで、HTMLフォームから入力されたテキストを使用して音声を生成し、保存する方法を以下に示します。また、ja-JP-Standard-Dの音声モデルと再生速度1.25を指定します。この例では、PHP言語を使用します。

1.Google Cloud Platform (GCP) アカウントのセットアップ:
Google Cloud Platformでプロジェクトを作成し、Cloud Text-to-Speech APIを有効化します。
APIキーまたはサービスアカウントキーを作成して、プロジェクトにアクセス権を与えます。

2.XAMPPの設定:
XAMPPをインストールし、Apacheサーバーを起動します。

3.プロジェクトフォルダの作成:
XAMPPのhtdocsディレクトリ内に、プロジェクト用のフォルダを作成します。例えば、tts_projectなど。

4.必要なライブラリのダウンロード:
Google Cloud PHPライブラリをダウンロードして、プロジェクトフォルダに配置します。

5.PHPファイルの作成:
index.phpという名前のPHPファイルを作成します。

<?php
require 'vendor/autoload.php'; // Google Cloud PHPライブラリのautoloadを読み込む

use Google\Cloud\TextToSpeech\V1\AudioConfig;
use Google\Cloud\TextToSpeech\V1\AudioEncoding;
use Google\Cloud\TextToSpeech\V1\SynthesisInput;
use Google\Cloud\TextToSpeech\V1\TextToSpeechClient;
use Google\Cloud\TextToSpeech\V1\VoiceSelectionParams;

// GCPの認証情報を設定
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/credentials.json');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // HTMLフォームからテキストを取得
    $text = $_POST['text'];

    // Cloud Text-to-Speech APIに接続
    $textToSpeechClient = new TextToSpeechClient();

    // 音声の設定
    $voice = (new VoiceSelectionParams())
        ->setLanguageCode('ja-JP')
        ->setName('ja-JP-Standard-D');

    // 再生速度の設定
    $audioConfig = (new AudioConfig())
        ->setAudioEncoding(AudioEncoding::MP3)
        ->setSpeakingRate(1.25);

    // テキストから音声を生成
    $inputText = (new SynthesisInput())
        ->setText($text);

    $response = $textToSpeechClient->synthesizeSpeech($inputText, $voice, $audioConfig);

    // MP3ファイルとして保存
    file_put_contents('output.mp3', $response->getAudioContent());

    // メモリを解放
    $textToSpeechClient->close();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TTS Form</title>
</head>
<body>
    <form method="post">
        <label for="text">テキストを入力してください:</label>
        <textarea name="text" id="text" rows="4" cols="50"></textarea>
        <br>
        <input type="submit" value="音声生成と保存">
    </form>
</body>
</html>

6.注意事項:
putenv(‘GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/credentials.json’);の部分を、GCPの認証情報のパスに適切に変更してください。
Composerを使用してGoogle Cloud PHPライブラリをインストールしていない場合は、こちらを参照してください。
この例では、HTMLフォームからテキストを入力し、それをCloud Text-to-Speech APIを使用して音声に変換し、output.mp3として保存します。必要に応じて、プロジェクトのフォルダ構造やファイルパスを変更してください。

Composer?何のこっちゃ???となりましたが、根気強くChatGPTに質問しまくりましたw

最終的には、音声の設定と再生速度の設定を選択できるように変更したり、アウトプットされるmp3のファイル名にタイムスタンプを追加して上書きしないようにしたりと、色々とChatGPTにお願いしました。ChatGPTは私のような"にわか"にとっては神様のような存在です。はい。


さらに追記(レンタルサーバーへの実装)

Google Text-to-Speechをレンタルサーバー上に実装する場合は、SSH接続が必要です。
SSHクライアント(例えば、私はpuTTYを使用しました)を使用して、サーバーにComposerをインストールし、JSONファイルを作成し、ライブラリをインストールする必要があります。
試しにローカル環境をサーバーにアップロードしてみましたが動作しませんでした。これはComposerを使用してライブラリやパッケージの依存関係を適切に管理していないためかもしれません。
分かったような分かっていないような。。。

関連記事

engage 採用ページ公開中 今すぐチェック 求人ボックス
O-TAKA GROUP
大高建設株式会社
https://o-taka.co.jp/
Screenshot of o-taka.co.jp

TOP
TOP