今さらPython

NHKニュースでも読んでみますか。
ただ表示するんじゃ芸がないから、open_jtalkで読み上げましょう。

なお feedparser と playsoundは pip3 install 某でインストールが必要だと思う。
open_jtalkのインストールは、『openJTalk』を参考にしてね。

ちょっとメインルーチンが汚くなったけど、これは日時データをdatetime形式で再定義してからテキスト化しているからね。
Rubyだと Date.parseか何かで直接元テキストから変換してしまえるのだけど、うまい方法が見つからなかったの。後日何かあれば訂正するかも。

#!/usr/bin/env python3

import feedparser as fp
import datetime
import os
import subprocess
from playsound import playsound

class Jtalk():
   def talk(self,str):
       # 出力先を設定
       self.wavfile = "/var/tmp/newsone.wav"
       # 既にファイルがあったら消しておく。
       if(os.path.exists(self.wavfile) == True):
           os.remove(self.wavfile)
       os.environ["WAVFILE"] = self.wavfile
       os.environ["TALK"] = str
       os.environ["Voice"] = "/home/"+os.environ["USER"]+"/Downloads/MMDAgent/MMDAgent_Example-1.8/Voice/mei/mei_normal.htsvoice"
       print(os.environ["TALK"])
       subprocess.run("echo $TALK | /usr/bin/open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -m $Voice -r 1.0 -ow $WAVFILE",shell=True)
       playsound(self.wavfile)

class News():
   def __init__(self,d,title,summary):
       self.date = d
       self.title = title
       self.summary= summary

def filewrite(self,title,d,summary,filename):
   with open(filename,"w") as f:
       f.write(d,"\t",title,"\t",summary,"\n")
 
################

d = fp.parse("https://www.nhk.or.jp/rss/news/cat0.xml")
jj = Jtalk()
s = []
 
for entry in d.entries:
   year = entry.published_parsed.tm_year
   month = entry.published_parsed.tm_mon
   day = entry.published_parsed.tm_mday
   hour = entry.published_parsed.tm_hour
   minute = entry.published_parsed.tm_min
   #d = datetime.datetime(year,month,day,hour,minute,0).strftime("%Y/%m/%d %H:%M:%S")
   d = datetime.datetime(year,month,day,hour,minute,0).strftime("%Y年%m月%d日 %H時%M分")
   dd = News(d,entry.title,entry.summary)
   s.append(dd)

ans = "ニュースは全部で" + str(len(s)) + "件あります。"
jj.talk(ans)

k=1
for t in s:
   jj.talk(str(k)+"件めです。")
   jj.talk(t.date)
   jj.talk(t.title)
   jj.talk(t.summary)
   k=k+1

jj.talk("以上です。")

うん。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 07:16:38