カレンダー読み上げのReadMe作成

カレンダー読み上げのReadMe作成

コードはコピーしたので
ReadMe の原案を書いておく

M1 MacbookAir 16GB で動作しています

Gmail と Google Calendar を操作するためAPIとtoken.jsonが必要になります
https://developers.google.com/gmail/api/quickstart/python?hl=ja
を参考にAPIを使用可能にし、token.jsonを取得し同一ディレクトリに設置してください

使用にあたり pip install -r requirements.txt
を実行後

GoogleDrive のフォルダIDが必要になるので
create_folder.py で作業フォルダの作成とIDの取得を行います
add_gdrive_calendar.py
でIDを設定してください

label_gmail.py
でGmail ラベル一覧の取得ができます

add_gmail_calendar.py
で取得するGmailのラベルを設定します

Ollamaでelyza:jp8b’を使用します
arch -arm64 brew install git-lfs
git lfs install
git clone https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF.git
でダウンロード

vim Modelfile
でファイルを作成

中身を
FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
TEMPLATE “””{{ if .System }}<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>“””
PARAMETER stop “<|start_header_id|>”
PARAMETER stop “<|end_header_id|>”
PARAMETER stop “<|eot_id|>”
PARAMETER stop “<|reserved_special_token" として保存 ollama create elyza:jp8b -f Modelfile を実行し Successとなったら ollama run elyza:jp8b で実行します これで Ollamaでelyza:jp8bが動作します calendar_utils.py でDocker VoicevoxマシンのURLを指定していますので 環境に応じて変更してください 音声の作成に voicevox の docker が必要になります
docker pull voicevox/voicevox_engine:cpu-ubuntu20.04-latest
で取得しています 動作させるには バックグランドでの起動で -d オプションをつけて
docker run -d -p '192.168.1.69:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest
というように起動させます
IPアドレス部分はご自身のマシンのIPに変えてください

この文章をMarkdownで書き換える

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# webcom_face_gcalendar
Perform face identification with OpenCV When the face of the registered person is recognized Get this week's schedule using Google calendar API Generate and read audio with Docker's voicevox
 
 
## 動作環境
M1 MacbookAir 16GB で動作しています
 
Gmail と Google Calendar を操作するためAPIとtoken.jsonが必要になります 
https://developers.google.com/gmail/api/quickstart/python?hl=ja 
を参考にAPIを使用可能にし、token.jsonを取得し同一ディレクトリに設置してください
 
 
使用にあたり
`pip install -r requirements.txt`
を実行後
 
GoogleDrive のフォルダIDが必要になるので
create_folder.py で作業フォルダの作成とIDの取得を行います
add_gdrive_calendar.py
でIDを設定してください
 
label_gmail.py
でGmail ラベル一覧の取得ができます
 
add_gmail_calendar.py
で取得するGmailのラベルを設定します
 
Ollamaでelyza:jp8b’を使用します
```
arch -arm64 brew install git-lfs 
git lfs install 
git clone https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF.git
```
でダウンロード
 
`vim Modelfile`
でファイルを作成
 
中身を
```
FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
 
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
 
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
 
{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"
```
として保存 
` ollama create elyza:jp8b -f Modelfile`
を実行し  
Successとなったら 
`ollama run elyza:jp8b`
で実行します 
 
これで Ollamaでelyza:jp8bが動作します 
 
calendar_utils.py 
でDocker VoicevoxマシンのURLを指定していますので 
環境に応じて変更してください 
 
音声の作成に voicevox の docker が必要になります 
`docker pull voicevox/voicevox_engine:cpu-ubuntu20.04-latest`
 
で取得しています 
 
動作させるには 
バックグランドでの起動で -d オプションをつけて 

`docker run -d -p '192.168.1.69:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest` 

というように起動させます
IPアドレス部分はご自身のマシンのIPに変えてください

とした

空白2つで改行
`で囲むとコード表示

複数行なら
“`
で囲む

URLはそのままでOK

タイトルは##の後に表示

Markdownの記述メモとGithub へソースコード公開

Markdownの記述メモとGithub へソースコード公開

Markdownの書き方

を参考に

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 見出しレベル1
## 見出しレベル2
### 見出しレベル3
#### 見出しレベル4
##### 見出しレベル5
 
見出しレベル1
=========
 
見出しレベル2
---------
 
レベル1は
H1

と同じ

ソースコードは
バッククォートを使ってコードを囲む

改行は行末にスペースを2つ入れる

URLはそのままでOK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# mail_voice
Read unread Gmail text with URL removed. If there is a link in the text, open it with selenium and download the PDF.
 
特別支援学校のお知らせがCocooによりメールで送られてくるため 
Gmailでラベルを作成し、未読のメールを読み上げるようにしています。 
メール内の本文をvoicevox で読み上げ、 
文章内にURLがある場合 selenimでダウンロードし 
PDFの文字数が100文字以下なら読み上げ、 
それ以上ならPDFを確認するように音声が流れます。
 
## 動作環境
M1 MacbookAir 16GB で動作しています、 
 
音声の作成に voicevox の docker が必要になります 
`docker pull voicevox/voicevox_engine:cpu-ubuntu20.04-latest` 
で取得しています
 
動作させるには
 
バックグランドでの起動で
-d オプションをつけて 
`docker run -d  -p '192.168.1.69:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest` 
というように起動させます 
IPアドレス部分はご自身のマシンのIPに変えてください
 
Gmailを操作するためAPIとtoken.jsonが必要になります 
https://developers.google.com/gmail/api/quickstart/python?hl=ja 
を参考にAPIを使用可能にし、token.jsonを取得し同一ディレクトリに設置してください 
 
config.iniの中にGmailラベルの設定と 
dockerマシンのIPアドレスの設定 
次の顔検出までの設定時間があります 
 
それぞれの使用環境でセットしてください

として保存

次に
GitHubでパスワード認証が廃止されたため、
HTTPSを使ってリモートリポジトリにアクセスする際にはパーソナルアクセストークン(PAT)を使用するか、
SSHキー認証を使用する必要がある

今回はSSHキー認証を使う

1
ssh-keygen -t ed25519 -C “メールアドレス”

でパスフレーズを入力

1
cat id_ed25519

でファイルの中身が見れる

GtHubにログインし、右上のプロフィールアイコンをクリックして「Settings」に進み
「SSH and GPG keys」をクリックし、「New SSH key」ボタンをクリックし
Title」にキーの名前を入力し、「Key」フィールドに公開キーの内容をペースト

Add SSH key」をクリックしてキーを登録

しかし登録がされなかった

再度試す

1
cat ~/.ssh/id_ed25519.pub | pbcopy

でクリップボードにコピーした値を使ってみた

これが正しい値だった

これにより
SSHで git clone しようとした時の

1
You don't have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS.

が消える

1
git clone git@github.com:Snowpooll/mail_voice.git


設定したSSHのパスフレーズを入力すれば
Git clone が実行される

次に gitignore と requirements.txtを作成する

1
vim .gitignore

でファイルを作成

1
2
3
4
5
6
7
8
__pycache__/
query.json
token.json
downloaded_file.pdf
notice.wav
notice_pdf.wav
audio_output.wav
email_body.txt

として保存

次に

1
vim requirements.txt

でファイルを作成

中身は

1
2
3
4
5
6
7
8
9
10
11
PyMuPDF
playsound
configparser
pygame
google-api-python-client
google-auth-oauthlib
google-auth-httplib2
python-dateutil
opencv-python
selenium
requests

あとは

1
2
3
git add .
 git commit -m "add source code"
git push -u origin main

で公開

先にコードをアップして
READMEは後で書くことも可能