IT

Azure Cognitive Services|Speech Studioを使って、テキスト読み上げクイックスタートで読み上げてみたメモ

最近、ChatGPTのおかげでプログラミングができなくてもプログラミングできるようになってきました。

そして2023年のゴールデンウィークでは、雨も降ってきたことから家にこもってマイクロソフトのAzureを使ってみました。

やってみたのは、Speech Studioという音声を扱うAzureのサービスです。

[st_toc]

音声からテキストに変換変換したり、

逆にテキストを読み上げてくれたりします。

今回は、テキスト読み上げをやってみました。

環境もなかったので一から作ってみました。こういう環境づくりから始めるような場合、どこかで躓いて途中で断念することが多いですが、今回は「クイックスタート」を見て順番にやっていったところ何とか実現まで辿り着きました。

クイック スタート: テキストを音声に変換する

とりあえずやったことを洗い出しておきます。主に、画面にあるとおりの手順でやっていきました。

実際になぞっていったページを振り返ると、
 クイックスタート:テキストを音声に変換する
 Speech SDK のインストール
の2つのページを行ったり来たりして、実現できた気がします。

なお、プログラミング言語は JavaScript を選択しました。

あとは、前提条件から1つずつこなしていくことで、何とか最後まで辿り着くことができました。

ざっくり、以下が主な手順になりました。私の場合はいろいろなものを初めてインストールしています。

  • 1. Azureのアカウント作成(サブスクリプションというのも確かここで勝手に作成された)
  • 2. リソースグループの作成(Speech Servicesの作成)
  • 3. Node.jsのインストール(初めて)
  • 4. ローカルにフォルダを作り、npm init を実行(初めて)
  • 5. Node.jsで使用するSpeech SDKをインストール(初めて)
  • 6. VSCodeをインストール(初めて)
  • 7. サンプルプログラムの実行

正直、1~6まで事前の環境設定です。やはり環境設定が大変で、最後に実施するところはあっという間でしたw

1. Azureのアカウント作成

Azureのアカウント作成。ここは「無料で始める」みたいなところから作りました。
実はアカウントだけは3週間ほど前に作っていたので、どうやったかはあまり覚えていません。。

確か、クレジットカードも登録した気がします。
「12か月の無料サービスの利用を開始する」とあるので、12か月したら有料になるのかも・・・

2. リソースグループの作成(Speech Servicesの作成)

「Speech Servicesの作成」というところで、
 ・サブスクリプションを選択(確かアカウント作成時に勝手に作られた?)
 ・リソースグループの作成(適当に「リソースグループ01」と命名)
を作り、「インスタンスの詳細」には、
 ・リージョン(日本の場合は東日本と西日本の2つ)
 ・名前は適当に作成
などを作りました。(以下はすでに作り終わったあと、再度作成しようとした画面なので、ちょっと違います)

「価格レベル」というところが、上では「Standard S0」というのしか表示されていませんが、最初に作るときには「Free レベル(F0)」というのが選べました。

多分お試しなどのための無料枠があるのだと思われます。

Free (F0) というのは以下のような料金体制のようです。

例えば「1か月あたり5音声時間は無料」とあります。
・・・きっと、音声なら5時間分までは無料ということなのだと思います。

Text to Speech(今回使った)については「1か月あたり0.5million文字まで無料」とあるので、0.5百万文字→50万文字までは無料なのだと思います。
お試しする分には十分だと思います。

その下には「従量課金制」というプランがあります。

Speech to Textは、音声時間当たり約133円、
Text to Speechは、1M字(100万文字)あたり約2,133円とあります。
安いのか高いのか、ちょっとよく分かりませんが本格的に使う場合は気にするところかと思います。

3. Node.jsのインストール(初めて)

Node.jsというのがPCにインストールするものだというのを初めて知りました。
ChatGPTに尋ねると、

ということで、自分のWindows PCがサーバーになってJavaScriptを動かすことができるということだと理解しました。PCがインターネットに接続しているので、そのままPCのJavaScriptファイルをNode.jsで動かしてAzureのサービスも利用できる、みたいな仕組みなのかと・・・

4. ローカルにフォルダを作り、npm init を実行(初めて)

やたらクイックスタートに出てくるのが「npm」という単語でした。

npm(Node Package Manager)は、Node.jsのプロジェクトで使用されるパッケージ(ライブラリやモジュール)を管理するためのツールです。npmは、JavaScriptおよびNode.jsの開発者が再利用可能なコードを共有、発見、インストール、および更新できるようにする機能を提供します。

「npmとは何ですか?」とChatGPTに聞いてみた

ということで、npmとはNode.jsで使う用語だということが分かりました。

Cドライブに適当なフォルダを作り(test-nodejsフォルダ)、コマンドプロンプトで、
 npm init
と打ち込み、適当に値を入れたり、分からないところはEnterで進むと「package.json」というファイルが出来上がりました。

{
"name": "test-20230506",
"version": "1.0.0",
"description": "aaaaaa",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"microsoft-cognitiveservices-speech-sdk": "^1.28.0"
}
}

package.jsonの中身

これで「npmプロジェクトを作成」したようです。

5. Node.jsで使用するSpeech SDKをインストール(初めて)

次に、指示どおりに
 npm install microsoft-cognitiveservices-speech-sdk
というコマンドを実行して、Speech SDKパッケージを追加しました。

6. VSCodeをインストール(初めて)

これは、jsファイルを作るのにあると便利でした。インストールしました。

7. サンプルプログラムの実行

環境ができあがったら、あとはクイックスタートにあるサンプルプログラムを実行するだけで実現しました。

ただしAzureのキーをローカルの環境変数に設定する、というセキュリティ上の注意点もよく読んで、
 setx SPEECH_KEY your-key
 setx SPEECH_REGION your-region
というのをコマンドプロンプト上で実施しました。your-key, your-region を自分のものに書き換えて、環境変数に持たせておくことでセキュリティ上の対策をするということです。

あとは、サンプルプログラム「SpeechSynthesis.js」を作り、「音声合成言語」の設定箇所だけを日本語のものに変更します。

日本語の場合、7種類ほどあるようです。サンプルも聞けますが、一番自然に感じた「ja-JP-NanamiNeural」を選んでみました。

そして、コマンドプロンプト上で「SpeechSynthesis.js」実行すると、
「Enter some text that you want to speak」と出てきたので、
「こんにちは、kintoneの学習を始めましょう。」と入れると、

YourAudioFile.wav という音声ファイルが出来上がりました!

以下は実際に生成された初の音声ファイルです。
「こんにちは、kintoneの学習を始めましょう。」

ちょっと「キントーン」の発音が甘いけどw

今回いろいろ調べながら試してみるにあたっても、ChatGPTにサンプルソースコードをそのまま投げて解説してもらったり、基本的なことを聞いたりして進めることができました。かなりChatGPTがサポートしてくれていることは間違いないと思います。

補足メモ1:料金がどうなっているか

料金がやはり気になるので気づいたのは、Text to Speechの場合は文字の量による課金とのことです。

上記にある「価格ノート」のところを見ると、

とあり、日本語でしゃべる内容(句読点なども含む)が日本語1文字あたり2文字としてカウントされるようです。

「おはようございます。」なら20文字としてカウントされるということだと思われます。

これが、Speech Services の価格を見ると「1 か月あたり 0.5 million 文字まで無料」とありますので、50万文字まで無料、日本語の場合は25万文字まで無料と解釈しました。
1か月あたり25万文字まで無料なら、気にする必要はなさそうです。

あとは「25万文字を超えたらストップされるのか、課金されるのか」「現在はどれだけ使っているのか」を知りたいところです。

-IT