ロボット掃除機の音声パック:掃除機に新しい声を
ロボット掃除機は、掃除開始、バッテリー低下、動けない、充電台に戻るなど、何でも声で知らせます。この声をゲームのキャラクターや映画のロボット、自分の言語の声に替える人もいます。メーカーのアプリでは公式パックしか選べませんが、オープンソースのファームウェアValetudoを入れたロボットなら自作のパックを読み込めます。
このガイドでは、コミュニティのプロジェクトをもとにDreameの音声パックの構成、無料のSuperClonicaエンジンで各フレーズを音声化する方法、Valetudoでのインストール方法を紹介します。
最初に必要なもの
自作パックには、メーカーのクラウドを置き換えるクラウド不要のファームウェアValetudoが入ったロボットが必要で、ロボットのroot化が前提です。root化は自己責任で、保証に影響することがあります。対応機種はValetudoのドキュメントで確認してください。このガイドはDreame向けのコミュニティパックに基づいており、作者の一人は少なくともL10 Pro、Z10 Pro、W10、D9で動いたと書いています。Roborockのロボットはパックの形式が異なります。
フレーズの一覧
コミュニティのプロジェクトccoors/dreame_voice_packsはsound_list.csvを公開しています。番号で名前の付いた187個の音声ファイルと、それぞれの英語のフレーズの一覧で、たとえば7.oggは「Start cleaning.」、0.oggは起動音です。ほかの言語にするならフレーズを翻訳し、ファイル名はそのままにしてください。
各フレーズを音声化する
python -m pip install superclonica-cpuで無料のエンジンを入れ、Pythonで import csv, from superclonica import Superclonica and tts = Superclonica(), then for name, text in csv.reader(open("sound_list.csv", encoding="utf-8")): audio, rate = tts.synthesize(text, voice="voice.json", lang="ja", seed=7); tts.save(name.replace(".ogg", ".wav"), audio) と書きます。seedを固定すると、すべてのファイルで同じ声になります。起動音は短いチャイムのままにするか、楽しいひと言を録りましょう。その後、コミュニティのパックと同じように各ファイルを16kHzのOggに変換します。たとえば ffmpeg -i 7.wav -ar 16000 -ac 1 -c:a libvorbis 7.ogg です。
まとめてValetudoでインストール
tar czf voice_pack.tar.gz *.ogg でファイルをまとめ、MD5ハッシュとバイト単位のサイズを控えて、ロボットから届くWebアドレスにアーカイブを置きます。ValetudoでRobot Settings、Misc Settingsを開き、Voice packsの欄にURL、言語コード、ハッシュ、ファイルサイズを入力してSet Voice Packを押します。コミュニティの作者の一人は、自分のバージョンではダウンロード後にフォルダーが空のままで、手動でファイルをコピーしたら動いたと報告しているので、機種ごとの注意書きを確認しましょう。
声を選ぶ
各ページで30〜100文字のフレーズを入力すれば、アカウントなしで無料で声を試せます。笑いを取るならゲームや映画のキャラクター、静かな家なら落ち着いたナレーターがおすすめです。バッテリー低下やエラーの案内は、部屋の反対側からでも聞き取れるようにしましょう。エンジンは31言語を話し、中国語にはまだ対応していません。カタログのキャラクター音声はファンメイドなので、パックはファン作品として共有しましょう。