Open Notebookとは?NotebookLMとの違い、Docker導入、OCR・4人音声講義まで徹底解説
PDFやWebページをAIに読ませ、「この資料の要点は?」「2つの論文の違いは?」と質問できるGoogleのNotebookLMは、調査や学習の方法を大きく変えました。
一方で、使うAIモデルを選びたい、資料を自分のPCで管理したい、音声解説の登場人物や声を自由に作りたい、という要望もあります。そこで候補になるのが、オープンソースのOpen Notebookです。
Open Notebookは、NotebookLMと同じように資料を集め、要約・検索・チャット・ノート作成・音声解説を行えるセルフホスト型アプリケーションです。OpenAIやGoogleだけでなく、OllamaなどのローカルLLM、ElevenLabsなどの音声サービスも組み合わせられます。公式GitHubでは、18以上のAIプロバイダー、全文・ベクトル検索、複数話者のポッドキャスト、REST APIなどが紹介されています。
この記事では、Open Notebook 1.13.0をDockerで構築した実例をもとに、NotebookLMとの違い、内部の仕組み、導入方法、OCR、複数人の音声講義、GPU利用までまとめます。
この記事の内容は2026年7月20日時点のものです。Open Notebookと各AIサービスは更新が速いため、モデル名や画面名は実際の同期結果を優先してください。
Open Notebookとは
Open Notebookは、Luis Novo氏が中心となって開発しているMITライセンスのオープンソースプロジェクトです。公式には、NotebookLMの考え方を、より柔軟で自由に使える形で実装したアプリケーションと説明されています。
主な機能は次のとおりです。
- PDF、Webページ、Office文書、動画、音声などを資料として登録
- 資料を根拠にしたAIチャット
- 全文検索とベクトル検索
- 要約、主要な洞察、レビューなどの変換処理
- 自分で書くノートとAIが生成したノートの管理
- 1~4人の人物設定を使った音声講義・ポッドキャスト生成
- OpenAI、Google、Anthropic、Ollama、ElevenLabsなど複数プロバイダーへの対応
- REST APIによる自動化や外部システム連携
- Dockerを使ったセルフホスト
Open Notebook自身が巨大なAIモデルを内蔵しているわけではありません。資料管理、検索、プロンプト作成、AIモデルの呼び出し、結果の保存、画面表示をまとめる「AIノート基盤」と考えると分かりやすいでしょう。
クラウドAPIを使えば導入しやすく高品質です。Ollamaなどのローカルモデルを使えば、通信を抑えた構成にもできます。チャット、要約、埋め込み、音声講義の台本、音声合成に、それぞれ別のモデルを割り当てられる点が大きな特徴です。
Open NotebookとNotebookLMの比較
どちらが常に優れているという関係ではありません。簡単さと引用精度ならNotebookLM、自由度と運用管理ならOpen Notebookが有利です。
| 比較項目 | Open Notebook | NotebookLM |
|---|---|---|
| 導入 | Docker環境と初期設定が必要 | Googleアカウントですぐ使える |
| 運用場所 | 自分のPC、サーバー、クラウド | Googleのサービス上 |
| AIモデル | 多数のプロバイダーやローカルLLMから選択 | Google側が提供するモデル |
| データ管理 | 保存先を自分で管理できる | Googleのサービス規約に従う |
| チャットの引用 | クリック可能な資料単位の参照 | 引用文を表示し、資料内の該当位置へ移動 |
| 音声解説 | 1~4人、人物像、声、TTSを細かく設定 | 導入が簡単で完成度が高いAudio Overview |
| カスタマイズ | ソースコード、プロンプト、変換、APIを変更可能 | 提供された範囲で設定 |
| 費用 | ソフトは無料。API、サーバー、電力は別途必要 | 無料枠またはGoogleの各プランに依存 |
| 保守 | 更新、バックアップ、セキュリティを自分で管理 | Google側が管理 |
Open Notebookの利点
1. AIモデルを用途ごとに選べる
日常の質問には高速で安価なモデル、長い資料の分析には高性能モデル、埋め込みには専用モデル、音声にはElevenLabs、といった分担ができます。
今回の検証環境では、次の切り替えを用意しました。
- 言語モデル:OpenAI、Google Gemini、Ollama
- 埋め込み:OpenAI、Google、Ollama
- 音声合成:OpenAI、Google Gemini TTS、ElevenLabs、ローカルSpeaches
- 音声認識:ElevenLabs、ローカル対応サービス
特定企業のモデルへ固定されず、品質、料金、速度、データ取扱条件に応じて選べます。
2. セルフホストできる
ノートブック、抽出した文章、チャット履歴などの保存場所を自分で管理できます。ただし「セルフホスト=すべてのデータが必ずローカル」とは限りません。OpenAI、Google、ElevenLabsなどのAPIを選べば、処理対象の文章や音声はそのサービスへ送信されます。
完全にローカルへ寄せたい場合は、LLMと埋め込みにOllama、音声にローカルのSpeachesなどを使用します。品質や速度とのバランスを確認しながら選ぶ必要があります。
3. 音声講義を細かく設計できる
Open Notebookは、話者の名前、経歴、性格、Voice ID、TTSモデルを設定できます。今回作成した日本語4人講義では、次の人物を用意しました。
- ひな(女性):明るく温かい進行役
- ゆき(女性):根拠を丁寧に説明する研究者
- たつき(男性):身近な比喩を示す講師
- いろは(女性):疑問や反例を出す学習者
4人がただ順番に読むのではなく、驚き、疑問、納得、穏やかな反論などを交えながら会話するよう、台本の指示も設定できます。話者ごとにOpenAI、Google、ElevenLabsなど異なる音声サービスを割り当てることも可能です。
4. OCRやローカルGPUを組み込める
Doclingを追加すると、文字が画像になっているスキャンPDFや画像ファイルをOCRで読み取れます。今回の環境では、画像だけで作ったPDFから文字を抽出できることまで確認しました。
また、DockerへGPUを割り当てれば、OllamaのローカルLLMやDoclingの一部処理を高速化できます。検証機のGeForce RTX 2070 8GBはOllamaの対応GPUですが、8GBでは小型モデルや量子化モデルを中心に使うのが現実的です。Ollama公式GPU一覧
Open Notebookの欠点
1. 導入と保守に知識が必要
Docker、APIキー、データベース、バックアップ、アップデート、ログ確認などを自分で管理します。NotebookLMのようにブラウザーを開くだけでは始まりません。
外部公開する場合はさらに、HTTPS、認証、ファイアウォール、脆弱性対応が必要です。初めは127.0.0.1だけに公開し、インターネットへ直接ポートを開けないことを推奨します。
2. API料金が別にかかる
Open Notebookは無料でも、OpenAI、Google、ElevenLabsなどの利用料金は別です。長い資料、長時間音声、4人分の音声合成は使用量が増えます。
3. 品質がモデルと設定に左右される
回答、検索、音声の品質は、選択した言語モデル、埋め込みモデル、チャンク分割、資料の品質、TTSに大きく依存します。ローカルモデルを使えば常に安価で高品質になるわけではありません。
4. 引用機能はNotebookLMほど厳密ではない
ここは重要な違いです。
NotebookLMの公式ヘルプでは、回答中の引用へマウスを重ねると引用文を確認でき、選択すると資料内の該当位置へ移動できると説明されています。また、通常のチャットは選択した資料だけを根拠にします。NotebookLMのチャットと引用
Open Notebook 1.13.0にもクリック可能な引用がありますが、基本的には資料やノートのID単位です。PDFのページ番号、段落、動画の時刻まで厳密に示す仕組みではなく、モデルが引用を書かなかった場合にサーバー側で必ず拒否する検証もありません。
そのため、Open Notebookでハルシネーションを減らすには、次の運用が必要です。
- 質問に使う資料だけを選ぶ
- 必要に応じて「Full Content」を指定する
- 「資料だけを使い、根拠がなければ不明と答える」と指示する
- 引用リンクから原文を開いて確認する
- 数値、日付、固有名詞は必ず人が再確認する
よりNotebookLMに近づけるには、取り込み時にページ番号や段落位置を保存し、すべての事実文へ引用を要求し、回答と引用文の一致を検証する追加開発が必要です。
Open Notebookの動作のしくみ
Open Notebookは、資料をそのまま毎回AIへ丸投げするのではなく、検索しやすい形に処理してから回答へ利用します。この方式はRAG(Retrieval-Augmented Generation、検索拡張生成)と呼ばれます。
PDF・Web・音声・Office文書
↓
文章抽出/OCR/音声認識
↓
文章の分割(チャンク化)
↓
埋め込みベクトル生成
↓
SurrealDBへ本文・ノート・検索情報を保存
↓
質問に近い文章を全文検索・ベクトル検索
↓
検索結果と質問をLLMへ送信
↓
回答・引用・ノート・音声講義を生成
主要コンポーネント
検証したDocker構成は、主に次のサービスから成ります。
- Open Notebook画面:Next.js/React
- APIと処理:Python/FastAPI
- チャット処理:LangChain/LangGraph系の仕組み
- データ保存:SurrealDB
- ローカルLLM:Ollama(任意)
- ローカル音声:Speaches(任意)
- OCR・文書解析:Docling(任意)
Open Notebookの公式リポジトリでも、Python、FastAPI、Next.js、React、SurrealDBなどの構成が案内されています。Open Notebook公式GitHub
チャット生成
質問すると、選択した資料やノートから関連情報を集め、システム指示と質問と一緒にLLMへ渡します。LLMは回答中にsource:やnote:などの参照IDを付け、画面が番号付きリンクへ変換します。
埋め込みモデルが設定されていないとベクトル検索が利用できないため、ローカルLLMを使う場合も、Ollamaなどで埋め込みモデルを用意する必要があります。
音声講義生成
音声講義は大きく二段階です。
- 言語モデルが資料をもとに構成案と会話台本を作る
- 各話者のTTSモデルが台詞を音声へ変換する
台本用モデルと音声モデルが分かれているため、「台本はOpenAI、ひなさんはGoogle音声、ゆきさんはElevenLabs」といった組み合わせができます。
Open Notebookの導入・設定方法
必要なもの
- Docker EngineまたはDocker Desktop
- Docker Compose
- メモリー8GB以上。ローカルLLMを使うなら16GB以上を推奨
- 利用するAIサービスのAPIキー
- ローカルAIを高速化する場合は対応GPU
公式リポジトリのクイックスタートも、Dockerを前提としています。公式インストール案内
1. 公式Composeで起動する場合
curl -o docker-compose.yml \
https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
docker compose up -d
起動後、ブラウザーでhttp://localhost:8502を開きます。データベースや暗号鍵の初期値をそのまま使って外部公開してはいけません。公式Composeの内容を確認し、十分に長いランダム値、localhost限定公開、バックアップを設定してください。
2. 今回の検証用構成で起動する場合
この記事の検証環境では、初期化とセキュリティ設定をMakefileへまとめています。
make init
make up
make password
画面はhttp://127.0.0.1:8502、APIはhttp://127.0.0.1:5055です。状態確認には次を使います。
make status
make smoke
この構成では、画面とAPIをlocalhostへ限定し、ログインパスワード、ランダムなデータベース認証情報、Docker secrets、APIキー暗号化を使用しています。
smokeとは
smokeは「スモークテスト(Smoke Test)」の意味です。
スモークテストとは、アプリケーションの主要機能が最低限動いているかを短時間で確認する簡易テストです。「電源を入れて煙が出なければ、ひとまず次の検査へ進める」という電子機器の試験が語源とされています。
このプロジェクトで次を実行すると、
make smoke
scripts/smoke_test.py が動き、主に次を確認します。
- Open NotebookのAPIへ接続できる
- ログイン認証が機能する
- 主要なAPIが正常に応答する
- データベースとの基本的な連携が動いている
3. AI認証情報を登録する
もっとも分かりやすい方法は、Open Notebookの「Settings → Models」からプロバイダーを追加する方法です。
- Add Configurationを選ぶ
- OpenAI、Google、ElevenLabsなどを選ぶ
- APIキーを登録する
- Testで接続確認する
- Sync Modelsでモデル一覧を取得する
- 必要なLanguage、Embedding、Text-to-Speechモデルを登録する
検証用構成では、.envから暗号化ストアへ取り込むこともできます。
OPENAI_API_KEY=...
GOOGLE_API_KEY=...
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
ELEVENLABS_API_KEY=...
make credentials
make credentials-test
make models-register
make models
GOOGLE_API_KEYはGoogle AI Studio/Google GenAI用です。GOOGLE_APPLICATION_CREDENTIALSはVertex AIのサービスアカウント用で、同じものではありません。
APIキーの値をGitへ登録したり、ブログや画面共有へ載せたりしないでください。
4. 用途ごとの標準モデルを決める
Open NotebookのDefault Model Assignmentsで、次の役割を設定します。
- Chat Model:通常の質問回答
- Transformation Model:要約や変換
- Large Context Model:長い資料
- Embedding Model:ベクトル検索
- Text-to-Speech Model:音声合成
- Speech-to-Text Model:音声認識
モデル名だけでなく、Open Notebookが発行するmodel:...形式のレコードIDもあります。音声プロフィール作成CLIでは、make modelsの一覧から、TTSにはTYPE=text_to_speech、台本にはTYPE=languageのIDを選びます。
5. スキャンPDFのOCRを有効にする
Doclingを有効にすると、スキャンPDFや画像内の文字を抽出できます。
ComposeのOpen Notebookサービスへ次を渡します。
environment:
OPEN_NOTEBOOK_ENABLE_DOCLING: "true"
初回起動時には、Docling、PyTorch、RapidOCRなど数百MB~数GBの依存パッケージがダウンロードされる場合があります。起動後、「Settings → Content Processing」で次を設定します。
- Document Processing Engine:
Docling - Docling OCR:有効
登録済みPDFには自動適用されないため、Retry Processingを実行するか、再アップロードします。低解像度、手書き、縦書き、複雑な表は誤認識する可能性があるため、抽出結果を確認してください。
Docling公式ドキュメントでは、PDF解析、OCR、表構造、GPU利用などが案内されています。
6. ローカルLLMを使う
検証用構成では、Ollamaを任意のDockerプロファイルとして起動できます。
make up-local-ai
make pull-llm
make pull-embedding
Open NotebookのModels画面でOllamaを追加します。
Base URL: http://ollama:11434
Language Model: qwen3:8b など
Embedding Model: nomic-embed-text など
GeForce RTX 2070 8GBでは、3B~4BまたはQ4量子化モデルが扱いやすく、8Bモデルはコンテキスト長やデスクトップのVRAM使用量によってCPUへ一部退避する可能性があります。ollama psのPROCESSOR列でGPU配置率を確認できます。Ollama公式FAQ
DockerからGPUを使うには、NVIDIA Container ToolkitとCompose側のGPU予約が必要です。Docker公式GPU設定
7. 4人音声講義を設定する
まず、Models画面でLanguageモデルとTTSモデルを登録します。次にSpeaker ProfileとEpisode Profileを作ります。
OpenAI音声だけで試す場合、今回の役割とVoice IDの組み合わせは次のとおりです。
| 話者 | 役割 | OpenAI Voice ID |
|---|---|---|
| ひな | 女性の進行役 | nova |
| ゆき | 女性研究者 | shimmer |
| たつき | 男性講師 | onyx |
| いろは | 女性学習者 | fable |
CLIで作成する場合は、make modelsで取得した実際のレコードIDを指定します。
python3 scripts/create_podcast_profile.py \
--voice-model-id 'model:実際のTTSモデルID' \
--voice-ids 'nova,shimmer,onyx,fable' \
--outline-model-id 'model:実際の言語モデルID' \
--transcript-model-id 'model:実際の言語モデルID'
ElevenLabsを使う場合、--voice-idsには自分のVoice Libraryで確認したVoice IDを指定します。モデルのレコードIDとVoice IDは別物なので注意してください。
Open Notebookの使い方
1. ノートブックを作る
Notebooksから新しいノートブックを作成します。1つのノートブックへ1つのテーマをまとめると、回答が安定します。
例:
ネットワークスペシャリスト

2. 資料を追加する
SourcesからPDF、Webページ、Office文書、音声などを追加します。状態がReadyまたは処理完了になるまで待ちます。
資料を追加する前に、個人情報、秘密情報、著作権上アップロードできない内容が含まれていないか確認してください。
NotebookLMもPDF、Google Drive、Web、YouTube、音声、画像など多様な資料に対応していますが、Webでは本文だけ、YouTubeでは利用可能な字幕だけを取り込むなどの制約があります。NotebookLMの対応ソース


3. 資料を選んで質問する
チャットで利用する資料を選び、質問します。
このノートブックで選択した資料だけを使って回答してください。
DNSまわりのセキュリティの理解度を確認する問題を3問作成してください。
資料に根拠がない内容は推測せず、「資料内では確認できない」と書いてください。
よい質問には、対象、数、形式を含めます。
中学生にも分かる言葉で3点にまとめてください2つの資料で意見が異なる部分を表にしてくださいこの資料だけから4択問題を5問作ってください答えに使った資料を各段落の末尾へ付けてください

4. 引用を確認する
回答の引用番号を押し、元の資料を開きます。Open Notebookの引用は資料単位なので、元の文章のどこに書かれているかも自分で確認します。
AIの回答は、引用が付いていても間違うことがあります。重要な意思決定、医療、法律、契約、研究発表では、原文と専門家による確認が必要です。
5. ノートと変換を使う
役立つ回答はNotesへ保存できます。Transformationsでは、要約、洞察抽出、レビューなどを実行できます。プロンプトを編集し、自分専用の処理を作れる点はOpen Notebookの強みです。
ライフハッカー・ジャパンの紹介記事でも、モデル選択、カスタム変換、ポッドキャスト設定の自由度が取り上げられています。「NotebookLMの限界を突破する代替ツール『Open Notebook』が自由すぎた」
6. 音声講義を作る
Podcastsまたは音声講義画面で、資料と「日本語・感情豊かな4人講義」プロフィールを選びます。
指示例:
地球温暖化の原因と対策を中学生向けに説明してください。
4人が質問、驚き、納得、反論を自然に交えながら話してください。
難しい言葉には身近な例を付け、最後に重要点を3つ復習してください。
資料にない数値や事実は作らないでください。
音声生成には時間とAPI料金がかかる場合があります。同じ生成ボタンを何度も押さず、完成後は人名、専門用語、数字の読み方を確認します。

実際に作成したポッドキャストを掲載します。4つのボイスの質が合っていないので、ちょっと不自然ですが、その辺りを調節すれば使える教材になりそうです。
データとセキュリティについて
Open Notebookをローカルで動かしても、クラウドAIを選べばデータは各プロバイダーへ送られます。機密資料では、API事業者の保存、学習利用、リージョン、契約条件を確認してください。
NotebookLMについては、Googleの公式ヘルプにデータ取扱いとフィードバック時の取扱いが説明されています。個人向け利用でフィードバックを送信すると、関連するプロンプトやアップロード内容などが確認対象になり得るため、機密情報を含めないよう注意が必要です。WorkspaceやEducationでは条件が異なります。NotebookLMのプライバシーと利用規約
Open Notebookを外部公開する場合は、少なくとも次を準備します。
- HTTPS対応のリバースプロキシ
- 強いログイン認証
- localhostまたはファイアウォールによるアクセス制限
- APIキーの暗号化と安全なバックアップ
- Dockerイメージと依存パッケージの定期更新
- SurrealDBとDockerボリュームのバックアップ
- アップロード容量とログの監視
まとめ
Open Notebookは、単なるNotebookLMのコピーではありません。NotebookLM型の「自分の資料を中心にAIを使う」という体験を、セルフホスト、複数モデル、カスタム変換、REST API、複数話者音声へ広げるための基盤です。
次の人にはOpen Notebookが向いています。
- AIモデルや料金を自分で選びたい
- OllamaなどのローカルAIを使いたい
- データの保存先を管理したい
- 3~4人の音声講義を作りたい
- OCRや独自プロンプト、API連携を追加したい
- Dockerやサーバーを自分で保守できる
一方、次の人にはNotebookLMが向いています。
- 設定なしですぐ使いたい
- Google Driveとの連携を重視する
- 引用文と資料内の正確な位置を素早く確認したい
- サーバーやAPIキーを管理したくない
- Googleが用意したStudio機能を完成された形で使いたい
特に引用については、NotebookLMのほうが一段進んでいます。Open Notebookを研究や業務で使うなら、「資料だけを使う指示」「根拠がない場合の回答拒否」「原文確認」を運用ルールにするべきです。
それでも、LLM、埋め込み、OCR、音声、話者、保存場所を自分で選べる自由度は大きな魅力です。最初はクラウドAPIで動作を確認し、必要な部分からOllamaやローカル音声へ置き換えるのが、無理のない導入方法でしょう。
参考文献
以下は2026年7月20日に確認した資料です。
- Open Notebook公式サイト
- Open Notebook公式GitHubリポジトリ
- Open Notebook公式クイックスタート
- ライフハッカー・ジャパン:NotebookLMの限界を突破する代替ツール「Open Notebook」が自由すぎた
- Google NotebookLMヘルプ:チャットと引用
- Google NotebookLMヘルプ:対応する資料と取り込み方法
- Google NotebookLMヘルプ:プライバシーと利用規約
- Google Blog:NotebookLM Audio Overviews
- Docling公式ドキュメント
- Docling公式:GPUサポート
- Docker公式:ComposeでGPUを利用する
- Ollama公式:GPU対応一覧
- Ollama公式FAQ
- NVIDIA CUDA 13.0 Release Notes
この記事で紹介した構成を利用する際は、各AIサービスの最新料金、利用規約、データ取扱条件、モデル提供状況を必ず確認してください。