見出し画像

聞き流しで発音を覚えたい

(Python勉強の備忘録的なものです)
 日本語ネィティブの立場で「台湾華語」の勉強をするときの「障害」は、何と言っても「発音」だと思います。「台湾華語」(繁体字中国語)は、日本の漢字の旧字体とほぼ同じですから、字を見れば大抵は意味もとれてしまう。ですが、発音をちゃんと覚えきれていないのがもどかしい。
 街角で「韭菜盒子」という、焼き餃子を大きくしたような、見るからにおいしそうな食べ物を見つけた。ニラが入ったお焼きみたいなものだろうというのはすぐわかる。食べてみたいのだけど韭菜が読めない、

字形が似ている(?)ので非常の非かな?と(fēi cài hé zi)と言ったら、店員さんに「ハァ?」と変な声を出されて赤面させられました。(正解はjiǔ cài hé zi)
 前回、日・英・華語の読み上げができる関数を作っています。これで発音を覚えていない単語を、繰り返して、覚えたい。

とある小吃のメニューから

韭菜盒子
高麗菜盒子
酸菜盒子
蘿蔔絲捲
豆腐捲
豬肉餡餅
牛肉捲餅
豬肉捲餅

とりあえず、8種類、これだけは発音覚えて注文してみたい。(全部食ってやる。)
 上のメニューをmenu1.csv という名前で同じフォルダに保存します。まだカンマ無いんですけど、そのうち、発音記号(ピンイン)とか意味とかつけて拡張していきたいのでcsvとしています。pythonの「csvモジュール」と言うのがあるので

説明読んでなんとなく理解。

import csv
with open('menu1.csv',newline='') as csvfile:
    csvreader = csv.reader(csvfile, delimiter=',' )
    for row in csvreader:
        print(row)

これreadcsv1.pyと言うファイル名で保存して実行してみると、なんかエラー出ました。

Traceback (most recent call last):
  File "d:\D_Document\MyPython\lang\readcsv1.py", line 4, in <module>
    for row in csvreader:
UnicodeDecodeError: 'cp950' codec can't decode byte 0xe9 in position 0: illegal multibyte sequence

MSのCopilot先生に聞くとエンコーディングを指定しろとのこと。

import csv
with open('menu1.csv', newline='', encoding='utf-8') as csvfile:
    csvreader = csv.reader(csvfile, delimiter=',' )
    for row in csvreader:
        print(row)

これで

['韭菜盒子']
['高麗菜盒子']
['酸菜盒子']
['蘿蔔絲捲']
['豆腐捲']
['豬肉餡餅']
['牛肉捲餅']
['豬肉捲餅']

このように出力されました。ちなみに

import csv
with open('menu1.csv', newline='', encoding='utf-8') as csvfile:
    csvreader = csv.reader(csvfile, delimiter=',' )
    for row in csvreader:
        print(row[0])

こうやると・・・

韭菜盒子
高麗菜盒子
酸菜盒子
蘿蔔絲捲
豆腐捲
豬肉餡餅
牛肉捲餅
豬肉捲餅

このように出力されました。最後は、前回の読み上げのコードと組み合わせて

import csv
from myspeech_lib import myspeech
with open('menu1.csv',newline='', encoding='utf-8') as csvfile:
    csvreader = csv.reader(csvfile, delimiter=',' )
    for row in csvreader:
        print(row[0])
        myspeech("zh-TW",row[0])

これで、一品ずつ表示しながら読み上げてくれるようになりました。発音は、大変良いです。


いいなと思ったら応援しよう!