従来から、単語帳データベースのための音声ファイルの作成は、グーグル翻訳の読み上げ機能を使用していました。しかし、稀にグーグルの発音では都合が悪い場合も有り、苦労していました。
そんな折、興味深いサイト( https://ondoku3.com/ja/ )を発見しました。
グーグル翻訳と違って翻訳機能は有りませんし、APIも使えないようで音声ファイルを手動でダウンロードする必要はありそうです。しかし設定できるバリエーションが豊富そうなので、いずれかの設定で所望の読み上げを期待することはできそうです。
以下は、「音読さん」からダウンロードしたmp3ファイルをデータベースに登録する為のスクリプトです。base64により可読性を持たせ、指定した ID のレコードのvoiceカラムをupdateします。その後、concat 関数によりjaカラムの末尾に音読さんのクレジットを追記しています。
#!/bin/bash sdoc=\ "ed_voice \n"\ " 中国語教室復習データベースの\n"\ " 音声データを編集します。\n\n"\ " [require]\n"\ " id: データベースのID \n\n"\ " [input]\n"\ " 音読くんからのmp3音声ファイル\n"\ " ed_voice id=??? < *****.mp3\n"\ "\n\n\n" export sdoc id=`getparstr $# "$*" "id"` if [ -z ${id} ] then usage;exit fi
# データベース名とIPアドレスは秘匿しています
DB=XXXXX
host=nnn.nnn.nnn.nn voice=`\ cat /dev/stdin |\ base64 -w0` # BASE64にエンコードした音声をデータベース更新する # 「音読さん」のクレジットを追加します mysql -N -h ${host} ${DB} << _SQL_ update vocabulary set voice="${voice}" where id=${id}; update vocabulary set ja=concat(ja,"【音声は「©音読さん」使用】") where id=${id}; _SQL_