voicevox でお知らせメッセージの作成
新着メールがあった時とかに急に読み上げするのではなく
内容は長文のためPDFをご確認ください
と
特別支援学校からのお知らせがあります
を
Voicevoxで作成した音声を流すようにするため
音声の作成
これは
curlで作成できるので
まず
docker run -d -p '192.168.1.69:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest
でdockerを起動
次に
vim notice.txt
で内容を
特別支援学校からのお知らせがあります
vim notice_pdf.txt
で
内容は長文のためPDFをご確認ください
として
curl -s -X POST "192.168.1.69:50021/audio_query?speaker=1" --get --data-urlencode text@notice.txt > query.json
でjsonを作成
このjsonを元に
curl -s -H "Content-Type: application/json" -X POST -d @query.json "192.168.1.69:50021/synthesis?speaker=1" > notice.wav
で音声を作成
同様に
curl -s -X POST "192.168.1.69:50021/audio_query?speaker=1" --get --data-urlencode text@notice_pdf.txt > query.json
でJSON作成
curl -s -H "Content-Type: application/json" -X POST -d @query.json "192.168.1.69:50021/synthesis?speaker=1" > notice_pdf.wav
で音声を作成
支援学校のPDFをダウンロードし
本文をテキストファイルに保存するプログラムは
main3.py
に記述してある
ダウンロード関連は
pdf_downloader.py
Gmailの認証系は
gmail_utils.py
にまとめてある
また認証関連は
token.json
これらと作成したwavファイルを
mail_voiceディレクトリに移動
これで処理を完成させる
とりあえずPDFとgmail本文の取得した文字列はできているので
あとはテキストファイルの読み上げをvoicevoxとするのと
PDFの本文の長さを取得し
docker のVoicevox で再生できるのは100文字程度だった
それ以上なら
音声ファイルを再生しPDFを閲覧するように促す
このためには文字数のカウントをする
まずはPDFの文字列の長さを取得する