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