251220 NVDA日本語版開発の舞台裏とAI活用の最前線

183 Views

December 21, 25

スライド概要

スクリーンリーダーNVDAの本家版と日本語版の開発を例に、AIがどのように開発を支え、次の可能性を広げているのかを紹介します。

https://nvdajp2025.peatix.com/

NVDA日本語チームチャリティートーク2025

profile-image

Shuaruta Inc. ウェブアクセシビリティ基盤委員会 (WAIC) NVDA日本語版 すごい広島 with Python

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

NVDA日本語版開発の舞台裏とAI活用の最前線 • 概要 • いまやオープンソース開発の現場でも、テスト自動化やコーディング AIの活用が進んでいます。本トークでは、スクリーンリーダーNVDA の本家版と日本語版の開発を例に、AIがどのように開発を支え、次の 可能性を広げているのかを紹介します。 • 西本卓也 • 株式会社シュアルタ代表。博士(工学)、情報処理安全確保支援士。 NVDA日本語チームの運営とNVDA日本語版の開発に携わっている。 ウェブアクセシビリティ基盤委員会(WAIC)委員として、支援技術の 検証と普及にも取り組む。PyCon JPなど技術コミュニティ活動にも積 極的に参加。

3.

開発者に求められるスキルの変化 • 何を作るかを定義する • AIを統率・委任する • 成果物の正しさと品質に責任を持つ • https://atmarkit.itmedia.co.jp/ait/articles/2512/19/news081.html • https://github.blog/news-insights/octoverse/

4.

ロボット掃除機の「境界線テープ」

5.

NVDAとAIの活用

6.

NV Access のロードマップ • AI画像説明 • インターネットに情報を送信しない • 2026.1 では英語だけ対応 • 230MBのGPT2モデルをあとからダウンロード • NVDAヘルプAIチャットボット? • NVDAに関する質問に答える • AIを統合していく • 無料で安全で高性能でプライバシーに配慮

7.

NVDAはどう変わるか • NVDA 2025.3 まで = 32ビット • Windows 64ビット版と64ビットアプリに対応する拡張 • 32ビットアプリの開発を続けることが困難になった • NVDA 2026.1 から = 64ビット • Windows 32ビット版で動作しない • NVDA 2025.x 対応のアドオンが使用できない • AIを統合しやすくなる • 64ビットアプリに最適化できる

8.

NVDAの翻訳とAI

10.

• TM = 翻訳メモリ • MT = 機械翻訳

11.

翻訳ツールのAI機能の限界 • 英語のテキストに対して日本語訳の候補が提示される • 選んでそのまま使う • 書き直す、自分で翻訳、他のAIに相談 • いままで NVDA はどういう用語や表記を使ってきたか • Windows や Word や Excel ではどう表記されているか • ルールとコンテキストが重要 • 「キャレット」か「テキストカーソル」か • 「マウスポインタ」か「マウスカーソル」か • Math は「数学」か「数式」か

14.

NVDAの開発とAI

15.

チケット駆動開発 • Plan = 計画 • チケット (issue) を作る • Do = 作業 • Check = 検証 • レビューをする • テストをする • Action = 改善 • チケットに作業と議論を残す

16.

バージョン管理とブランチ運用 • 履歴と派生版の管理 • ブランチ(枝分かれ) • アルファ / ベータ / リリース候補 • 作業のためにさらに分岐 2026.2 2026.1 2025.3 • Do の成果 = 変更履歴(差分)を Check する • 追加した行、書き換えた行、削除した行 • ブランチの更新で自動化 • CI/CD 継続的インテグレーション、継続的デリバリー

17.

1回のCI/CDに45分かかる

18.

分散バージョン管理(Git/GitHub) ビルド環境 CI/CD クラウド 作業フォルダー AI 作業フォルダー 作業フォルダー

19.

日本語版への本家版の取り込み 本家版 日本語版

20.

NVDA 2026.1jp にむけた作業 本家ベータ版 2025.3.x jp 日本語版 ドキュメント 日本語ベータ版 日本語アルファ版

21.

何が起きたか • 64ビット対応を一気に進めようとした実験ブランチ • テストが不足したままマージを進めた • あとからテストを成功させようと修正したが直せない • 原因分析 • 複数の変更を一度にやろうとした • 各段階で確認が足りなかった • 開発環境で確認しやすくする準備が足りなかった

22.

教訓:品質保証の原則 • 小さな単位で進める • 段階的な検証を必須とする • 完了の定義を明確化する • 問題が発生したら即座に解決 • 開発環境の事前整備を優先する

23.

成功したアプローチ • 2025.3.x jp を維持しながら、段階的に • 開発環境の整備 • 日本語テキスト解析のテストを改善し、修正サイクルを短縮 • 32ビット、64ビットの両方で C++ コードをビルド • scons.bat jtalkSync TARGET_ARCH=(x64|x86) • アーキテクチャ別のビルドが独立して実行可能に • すべてをソースコードからビルドしなおす • 本家版との差分の最小化 • どのファイルを修正すればいいのか明確 • ビルドプロセスの無駄をなくす

24.

マトリクス実行をローカル開発環境で • jp smoke test • 音声エンジン、点訳エンジンの主要なテキスト解析処理 • NVDA を起動することなく単独で動作確認 • PowerShell スクリプト化 • オプションで32ビットと64ビットの両方に対応 • 64ビットでのaccess violationエラーの修正 • 原因は ctypes のポインタ型の指定不足 • 実験ブランチで発生した問題を安全に再現できた • AI が問題を検出して修正、再発も自動的に検出

25.

マトリクス実行をCI環境で • 32ビット版のテストに jp smoke test を統合 • 64ビット環境で jp smoke test だけを実行 • 最初は失敗した • エラー処理を改善し、失敗の検出を早くする • デバッグログを改善 • 仮説を立てながら調査 • Shift JIS 環境の Windows であれば成功すると判明 • 対策は最後に行う • 今後の点訳エンジンの改善もやりやすくなった

27.

コーディングAIの主要な形式 • 予測補完 • Do を支援する • IME の予測機能に似ている • チャット • Plan から Do をこなす • エラーメッセージ • エージェント • PDCA ループを自分で回す • ログ出力ファイルや仕様書を整備 • コマンド入力で短時間で検証できる環境

28.

AIがコミットとプッシュをする

29.

AI で仕事が速くなる? • AI が動けるように環境を整える • 自動で PDCA を回して5分で完了 • 複数の仕事を並行で • 終わったら音で通知 • すぐに自分でやれてしまうこともある • AI が気づいてくれない • あえて頼んでしまう • サボるための AI にはならない

30.

AI をうまく働かせる • ログ出力コードを整備する • AI を使い分ける • 高速モードや思考モードなど特性がある • ここぞというときに深いやつを使う • リミットを回避する • 複数のAIを併用する • ひとつだけ書き込み可能にする • クラウドでレビュー専用AIを使う • ネットワーク接続が切れないようにする

31.

ドキュメント駆動開発 • 問題とは現状と目標のギャップ • 現状はこうなっている • 目標はこうなっていてほしい • ドキュメントを作る • 現状が変化したらドキュメントを直す • 揺るがない原則を作る • ドキュメントを読めとAIに指示する • NVDA 本家が projectDocs を整備している • 今回の作業のために projectDocs/jp を作った

32.

成果の正しさと品質に責任を持つ • 小さな単位で進める • 段階的な検証を必須とする • 完了の定義を明確化する • 問題が発生したら即座に解決 • 開発環境の事前整備を優先する • 組織での仕事の作法 • AI利用の作法に発展している