0
1

接続詞を音で覚えたいので、Azure Speach ServicとPythonで単語リストを雑に読み上げる

Last updated at Posted at 2023-12-10

概要

お恥ずかしながら今更になって接続詞と前置詞を真面目に覚えたいため、Excelにまとめました。
ただ、やはり音声と対で覚えたいし、今後も似たようなシチュエーションが発生することが予見されるため、
Azure Speach Serviceの音声読み上げで改行区切りのテキストを読みだしてみました。

pythonからAzure SpeachServiceの呼び出し

Microsoft公式リファレンスにサンプルコードは置いてあるためこちらを参考に、音声読み上げ用の関数を作成。
https://learn.microsoft.com/ja-jp/azure/ai-services/speech-service/get-started-text-to-speech?tabs=windows%2Cterminal&pivots=programming-language-python

「speech_config.speech_synthesis_voice_name」で以下の一覧から言語や音声を指定できるため、今回は「en-US-AriaNeural」を指定。
https://learn.microsoft.com/ja-jp/azure/ai-services/speech-service/language-support?tabs=stt

改行区切りのテキストをリスト化して順番に読み上げ

次に単語をテキスト化
以下の通りテキストを作成(今回は一部のみ記載)。今回は「part3.txt」とし、プログラムを保存したディレクトリの下に「words/part3.txt」で保存した。
※Excelからコピーすることを想定し、改行区切りとした。

so
whether
while
even if
if not
whereas
provided that
whether X or Y
in order that

続けて以下の通りテキストから読みだした単語でリストを作り、1行ずつ読み上げるリストを作成した。
「fileName」で保管場所を指定、「intervalSecond」で単語読み上げのインターバルを指定した。
※実際はAzureのレスポンスの都合で指定より少し遅くなる。
※textToSpeach(word)は上記のMicrosoft公式ドキュメントに従って記載したものを呼び出し

#読み出し対象のテキストファイル
fileName = r"words\part3.txt"
#発話と発話の間隔
intervalSecond = 0.3

#テキストファイルを改行区切りでリスト化
with open(fileName ,'r') as file:
    wordsList = file.read().strip().split('\n')

#リストの要素ごとに読み上げ
for word in wordsList:
    #単語の読み上げ
    textToSpeach(word)
    #スリープ
    time.sleep(intervalSecond)

実行

実行すると想定通り音を読み上げた。
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1