Raspberry Piでのスマートスピーカー、そしてブラウザOS構想まで

この「移動中雑談 Podcast:We Are On The Way」第 11 回目では、前回までの話題を踏まえつつ、GStreamer 導入に関する試行錯誤や、新たな開発アイデアが次々と飛び出しました。

技術的な模索が続く中、Rust や WebAssembly(Wasm)、さらには Raspberry Pi など、取り組むべき方向性が豊富に浮かんできています。

GStreamerを試してみた話

問題点
Homebrew 経由で GStreamer を入れたところ、一部プラグインが動作せず、公式サイトからパッケージを直接ダウンロードして対応しました。
公式チュートリアルでは C 言語でのサンプルが示されていましたが、本来ならRust版のバインディングを使って、Cargo ビルドでヘッダーやリンカ設定の手間を省く方がスムーズなようです。

GStreamerの基本概念

  • Source(データの始点)とSink(終点)があり、その間に Filter(加工)や Mixer(合成)などのエレメントを挟むことで、音声・映像・テキスト処理を行います。
  • Rust バインディングを使えば、C での煩雑な設定なしに、より簡潔なコードでパイプラインを構築できるはず。

Raspberry Piでスマートスピーカーへの野望

先週はズンダモンとの特別回を考えるも、結局モチベーションが続かずスキップしたという竹内さん。そこで浮上した新たな方向性が、Raspberry Piでスマートスピーカーを自作するという企画です。

ハード選定

  • Raspberry Pi 4 あたりが適任。4GB モデルなら 1 万円前後、8GB なら 2 万円程度で入手可能。
  • 古い Windows ノート PC を流用する案も出ましたが、Linux 系の方が開発環境を整えやすく、やる気も出るため却下。
  • NVIDIA Jetson のような強力なボードもあるものの、高価なため今回は Pi で手軽に始める方針。

計画

  • コワーキングスペースや会議室を借りて、ラズパイで環境構築からスタート。
  • 将来的には Rust+GStreamer+AI 処理を組み合わせ、独自スマートスピーカーを実現するかもしれません。

OSを作ってみたい!ブラウザで動く小型OS構想

竹内さんは以前、マイクロカーネル方式の OS 本に挑戦して挫折した経験あり。そこで新たな発想として、ブラウザ上で動く小型OSをRustで書き、WebAssembly(Wasm)で動かすアイデアが浮上。

ブラウザOSのイメージ

  • 従来の OS 開発で必要なブートローダー実装などを省略し、ブラウザ上で完結する。
  • スタートページ的な UI を備え、ファイル操作やメモ帳、計算機などのミニアプリを統合。
  • 要となるのは WebAssembly(Wasm)で、ブラウザ特化の高速・安全な実行環境を提供。

WebAssemblyを巡る議論

WebAssembly は、Figma や Amazon Prime Video、Google Meet などで既に利用されているものの、一般的な Web 開発者にとってはまだ敷居が高いという指摘がありました。 計算コストが高い処理やネイティブ並みのパフォーマンスが求められる特定ドメインでの利用が中心となっている印象です。

まとめ

今回のトークでは、「Rust での GStreamer 活用」に続き、「Raspberry Pi でスマートスピーカー自作」、「ブラウザ上で動くミニ OS 構想」、「Wasm 活用」など、多彩なアイデアが展開されました。

  • GStreamer や Rust でのメディア処理は技術的ハードルがあるものの、Rust バインディングで開発効率が上がる。
  • Raspberry Pi でスマートスピーカー制作は、手軽な組み込み方向への挑戦として楽しそう。
  • ブラウザ OS 構想は先進的かつ実験的な試みで、Wasm の深い理解と工夫が必要。
  • 現状、Wasm は特定の高速処理領域や大規模 Web サービスでの利用事例が目立ち、一般的な用途への波及にはもう少し時間がかかるかもしれない。

今後、竹内さんと僕がどの企画に注力していくのか、また実際に手を動かし始めるのか、引き続きお楽しみに!

関連記事