見出し画像

Microsoft Azure と ChatGPT でリスニング教材を作ろう!



1.はじめに

 今回は以前書いた「Notion と ChatGPT で英語学習のハードルを下げよう!」という記事の続きです.

ということで早速リスニング教材を作るための準備をしていきましょう!

2.準備

 まずリスニング教材を作成するにあたって必要なものや,しなければならないことは以下2つです.

  • Microsoft Azure に登録

  • Python実行環境(特にiOSで実装する場合「Pythonista」(¥1500)が必要)

2-1.Microsoft Azure に登録

ではまず Microsoft Azure に登録しましょう.
下記のリンクから登録画面に移ってください.

登録が完了するとホーム画面に移行すると思うので,画面上部の「Azure AI services」(雲のマーク)をクリックしてください.

Fig.1 Microsoft Azure ホーム画面

そして「音声サービス」の作成ボタンをクリックしてください.

Fig.2 Azure AI services の画面

そしてフォーマットに従ってリソースグループや名前,価格レベルを決めましょう.(価格レベルはFreeでもテキスト読み上げ(以下TTS)の場合月50万文字まで利用できます)リージョンは英語圏であれば好きなところに設定してください.デフォルトはEast USになっていますので,以下East USを前提に進めます.

Fig.3 作成画面

作成が完了するとAPIにアクセスするためのキーが発行されます.これが後で必要になります.

2-2.Python実行環境の用意

 では次にPythonの実行環境を用意します.今回は前回の記事の続きなのでiOSでの実装を前提とします.
iOSの場合は「Pythonista」という1500円のアプリをダウンロードしていただければそれだけでOKです.(一応無料のPythonを動かすためのアプリもあるようですが,そちらでは実装していないのでうまくいく保証はできかねます.)

3.実装

 ではいよいよ実装していきましょう.まずPythonistaで,「iCloud」のディレクトリに移動しましょう.次にそこで左下のプラスボタンから「New Folder」を選択し,適当に名前を決めて新しいフォルダを作成します.そしてその作成したフォルダに移動して,そこでまた左下のプラスボタンから「Empty Script」を選択し,新規ファイルを作りましょう.これも名前はなんでも大丈夫です.

以下ではiCloudに「test_folder」を作成し,その中に「test_file.py」ファイルを作成しています.

Fig.4 Pythonista 画面

作成できたら,以下のコードを貼り付けてください.

import sys
import requests

# キーとリージョンを設定
subscription_key = "ここにキーを貼り付ける"
region = "eastus" # 違う場合は変更
tts_endpoint = f"https://{region}.tts.speech.microsoft.com/cognitiveservices/v1"

# ヘッダーの設定
headers = {
    "Ocp-Apim-Subscription-Key": subscription_key,
    "Content-Type": "application/ssml+xml",
    "X-Microsoft-OutputFormat": "audio-16khz-64kbitrate-mono-mp3"
}

# 音声化したいテキストの設定(SSML形式)
ssml_template = """
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
    <voice name='en-US-JennyNeural'>{text}.</voice>
</speak>
"""

body = ssml_template.format(text = sys.argv[1])

# POSTリクエストを送信し、レスポンスを受け取る
response = requests.post(tts_endpoint, headers=headers, data=body)

# MP3ファイルとして保存
with open("output.mp3", "wb") as audio_file:
	audio_file.write(response.content)
        
print("finished") # あってもなくてもいいです

変更すべき箇所は最初の「キーとリージョンを設定」の箇所です.
「ここにキーを貼り付ける」の箇所に先ほど入手したキーを貼り付けてください.
また,リージョンを eastus から変更した場合はそちらも変更してください.
最後の print("finished") の箇所は,保存が完了したら finished と表示されるようにするだけのコードなので消してもらっても大丈夫です.

ここまできたらあと一息です!右上の設定ボタン(レンチマーク)から「Shortcuts」を選択し,一番下のPythonista URLを選択します.そして一番上のCopy URLを押すと,クリップボードにそのファイルのURLがコピーされます.このURLは後で使います.

Fig.5 Pythonista 画面

コピーができたら,以下のリンクからショートカットをダウンロードしてください.

ダウンロードすると,「Notion のシークレットキー」「データベースID」「PythonistaでコピーしたURL」を入力する画面になるので,そこにそれらの情報を入力してください.

これでこのショートカットを実行することで,音声は先ほど作成したフォルダ内に「output.mp3」という名称で保存されるはずです.あとはこれを Notion のページで埋め込んでいただければ利用できます.

これで実装は以上になります!ここまでお疲れ様でした!

3.注意点

  • Microsoft Azure の利用に関する詳細な料金設定は公式ページを参照してください.

  • もしもショートカットではなく,コード単体で実行する方がいらっしゃれば,body = ssml_template.format(text = sys.argv[1]) の箇所の sys.argv[1] の箇所に音声化したいテキストをURLエンコードしたものを入れてください.

4.おわりに

 今回は Microsoft Azure を使ってスクリプト音声を作成することについて解説しました!プログラミング経験がない方にとっては少しとっつきにくかったかもしれませんが,もしお役に立てたなら幸いです.
 今後は今回のような Microsoft Azure をはじめとしてAWS や Google cloud なども使って色々使ってみたいと思います.その際はまた note で情報を共有させていただこうと思いますのでよろしくお願いします!

それではここまで読んでくださりありがとうございました!

5.参考

Microsoft Azure 公式ドキュメント [https://learn.microsoft.com/ja-jp/azure/ai-services/speech-service/rest-text-to-speech?tabs=streaming]
(閲覧日:2024/1/31)


この記事が気に入ったらサポートをしてみませんか?