![見出し画像](https://assets.st-note.com/production/uploads/images/151453719/rectangle_large_type_2_6abb3b29d5ab75b917f28371b594597a.png?width=1200)
(マジの)ご家庭にジャービス。完全 Macのみで日本語音声応答するAIを作った
Speech-to-speechは、NVIDIAのGPU搭載マシンがあればローカルで音声認識、応答生成、音声合成ができる画期的なオープンソースツールだった。
しかし一つだけ不満があったのは、これが日本語には対応していないということだ。
ワイはコスモポリタンである。
・・・そう名乗ってしまったから、「そういえばコスモポリタンってなんだろう」と思ってClaude-3に聞いてみた。
コスモポリタンは以下のような意味や用法があります:
1.飲み物としてのコスモポリタン:
ウォッカ、クランベリージュース、ライムジュース、トリプルセックを使ったカクテル
1980年代後半に人気が出て、特に映画やテレビドラマの影響で広く知られるようになりました
2.思想・概念としてのコスモポリタン:
世界市民主義、国際主義を表す言葉
国境や文化の違いを超えて、世界中の人々と交流し、理解し合うという考え方
狭い地域や国家の枠にとらわれず、開かれた国際的な視野を持つ人を指す場合もあります
3.形容詞としての用法:
国際色豊かな、洗練された、都会的なという意味で使われます
例: コスモポリタンな雰囲気の街、コスモポリタンなライフスタイル
これらの意味のうち、特に詳しく知りたい点がありましたら、お聞かせください。
そう、当然、飲み物ではなく、世界市民主義、国際主義を意味するコスモポリタンだ。
英語の受け答えはそれほど苦痛にならない。ただ、英語と日本語が混じると途端に頭が混乱してくる。
日本人相手に日本語で話をするときは、英語のことは極力忘れたい。特に文法みたいなのものについては。
だからSpeech-to-speechも、「あー使えるね」という感覚ではあったが、「これ毎日使おう」とまでは思わなかった。まあもうちょっとで使えるかな、という感じではあった。
しかし音声での応答は非常に魅力的だ。僕がAlexaが大好きな理由でもある。
なんせ楽なのだ。
僕ほどキーボードを打つのが苦にならない、それどころかキーボードを打つのが喜びであるような人間にとってさえ、キータイプよりもオーラルが楽なことはしばしばあるのだ。
speech-to-speechを少し改造すればなんとかなるかと思ったが、全然なんとかならなかった。そのうち、Speech-to-speechでMacだけで動くスタンドアロンなやつが出てきて、これを改造すれば完全スタンドアローンな音声応答AIが作れるのではないかと思って踏み込むことにした。久々に徹夜したぜ。
日本語のリアルタイム音声入力にはReazonSpeechを使い、音声出力にはとりあえずMeloTTSを使った。しかし、音声出力はもっとマシな方法があると思う(sayコマンドとかずんだもんとか)。今回は元の実装をある程度尊重した。
推論の本体はmlx-community/Llama-3-Swallow-8B-Instruct-v0.1-8bitを使用。8ビットでもまあまあちゃんと受け答えしてくれる。
こんな感じで動く
実際のソースコードは以下
インストール系のデバッグには、necobit ( https://github.com/necobit )さんが協力してくれた。
僕の手元のはMacBook Pro M2 /32GBだが、necobitさんの MacBook Air M1 /16GBでも(推論は遅いけど)動いたので改造すればリアルタイムでいけると思う。
特にnecobitさんはよくメイカーフェアとかでデモしてるので、完全オフラインで動くAIには興味があるようだった。
これで大ご家庭用AI時代が到来するかも!?