概要
本日(2026年1月21日)は、主にmacOS環境のクリーンアップ、.NET Native AOTでのモバイル向けライブラリビルド、そしてbgfxグラフィックライブラリの更新とデバッグに多くの時間を費やしました。特にbgfxの更新では、Mono ARM64 JITのバグやC#とCライブラリ間のenum/structの不一致など、多岐にわたる複雑な問題の特定と修正を行いました。また、Gemini Live APIを利用したリアルタイム実況アプリの初期開発を開始し、APIの仕様調査とプロジェクトのセットアップを進めました。
作業内容
.config
- 不要な設定ファイルやディレクトリを特定し、
~/.configディレクトリの整理を行った。 WakaTimeやNuGetなど、使用中のツールに関する古い設定ファイルを削除し、有効な設定は保持した。brew autoremoveコマンドを実行して、依存関係がなくなったHomebrewパッケージ(libultrahdr、libzip)を削除した。duf、fx、trippyといったHomebrewパッケージについて、その機能と用途を説明した。
dotnet-nativeaot-test
- .NET Native AOTを使用してC#コードからiOS/macOS向けのXCFrameworkとAndroid向けのAARをビルドするプロジェクトの概要を説明した。
build_xcframework.shスクリプトを実行し、macOSとiOSシミュレータ/実機向けのユニバーサルXCFrameworkを正常に生成した。build_aar.shスクリプトを実行し、Android向けのAARを生成した(NDKバージョン不一致を修正)。
LSE-Core
- Shazamのタイミング計測精度改善に関するコミットを
shazam-track-detectorブランチに作成し、Git LFS関連の不整合を修正した。 - 古いbgfxライブラリを最新バージョンに更新する作業を開始し、既存のカスタムパッチ(再初期化、ビルド設定)の必要性を評価した。
- macOS ARM64環境でのbgfx初期化クラッシュの原因がMono ARM64 JITのenum戻り値型に関するバグと、C#とbgfx間の
TextureFormat.Count値の不一致であることを特定し、修正した。 - bgfxのバージョンアップに伴うシェーダーの再コンパイル(
shadercツールの更新とプロファイル修正)と、Metal texture alignment(AGXエラー)の問題を解決し、SDFテキストの表示を復旧させた。 SharpBgfx内のenum(UniformType、ShadingRateなど)およびstructの定義を最新のbgfxと完全に一致させるための最終チェックと修正を行った。
LiveNarrator
- Gemini Live APIを利用したリアルタイム実況アプリの新規開発を開始し、APIドキュメントを読み込み、macOS SwiftUIアプリのアーキテクチャと実装プランを策定した。
- Gemini Live APIのセッション制限(オーディオ+ビデオで2分)に対応するためのセッション管理(自動再接続、Context Window Compression、Session Resumption)機能をプランに組み込んだ。
- XcodeGenでプロジェクトをセットアップし、ScreenCaptureKitでの画面・音声キャプチャ、MediaTransformerでのメディア変換、GeminiLiveClientでのWebSocket接続、AudioPlayerでの音声再生など、主要なサービスとUIコンポーネントの初期実装を行った。
- アプリが「Connecting...」でスタックする問題や、TCC権限の取得、AudioPlayerの
engine.connect()がハングする問題など、初期デバッグと修正を行った。 contextWindowCompressionがAPIでサポートされていないこと、realtimeInputではビデオが認識されずclientContentでの画像送信が必要なこと、音声出力には特定のモデル(gemini-2.5-flash-native-audio-preview-12-2025)が必要なことなどを特定し、修正を進めた。realtimeInputでのビデオ送信が機能しない(ハルシネーションが発生する)というAPI側の根本的な問題をPython SDKでのテストを通じて確認し、画像を認識させるにはclientContentのinlineDataを使うしかないという結論に至った。
Generated by ccdiary