Add: ローカルサーバーでマイク・カメラを使う方法、VibeVoice記事にリンク追加
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 27s
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 27s
This commit is contained in:
parent
1cfcfd96eb
commit
390ec4dcd4
95
docs-tech/browser-secure-context/index.md
Normal file
95
docs-tech/browser-secure-context/index.md
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 99
|
||||||
|
title: ローカルサーバーでマイク・カメラを使う方法
|
||||||
|
description: HTTP + IPアドレスでブラウザのマイク・カメラが動かない問題の解決策
|
||||||
|
hide_table_of_contents: false
|
||||||
|
displayed_sidebar: null
|
||||||
|
---
|
||||||
|
|
||||||
|
# ローカルサーバーでマイク・カメラを使う方法
|
||||||
|
|
||||||
|
## 問題
|
||||||
|
|
||||||
|
ローカルネットワーク上のサーバー(例: `http://192.168.1.100:7860`)にブラウザからアクセスすると、マイクやカメラが使えない。
|
||||||
|
|
||||||
|
```
|
||||||
|
NotAllowedError: Permission denied
|
||||||
|
```
|
||||||
|
|
||||||
|
## 原因
|
||||||
|
|
||||||
|
ブラウザの **セキュアコンテキスト** 制限。`getUserMedia()`(マイク・カメラ API)は以下の条件でのみ動作:
|
||||||
|
|
||||||
|
- `https://` — HTTPS接続
|
||||||
|
- `http://localhost` — ローカルホスト
|
||||||
|
- `http://127.0.0.1` — ループバック
|
||||||
|
|
||||||
|
**`http://192.168.x.x` は対象外。**
|
||||||
|
|
||||||
|
## 解決策
|
||||||
|
|
||||||
|
### 方法1: SSHトンネル(推奨)
|
||||||
|
|
||||||
|
最も簡単。リモートサーバーのポートを `localhost` にフォワード。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -L 7860:localhost:7860 user@192.168.1.100
|
||||||
|
```
|
||||||
|
|
||||||
|
その後 `http://localhost:7860` でアクセス → マイク使用可能!
|
||||||
|
|
||||||
|
**複数ポートの場合:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -L 7860:localhost:7860 -L 8000:localhost:8000 user@192.168.1.100
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方法2: Chromeフラグで許可
|
||||||
|
|
||||||
|
テスト用途に。特定のIPをセキュアコンテキストとして扱う。
|
||||||
|
|
||||||
|
1. Chromeで `chrome://flags` にアクセス
|
||||||
|
2. `Insecure origins treated as secure` を検索
|
||||||
|
3. 許可するURLを追加(例: `http://192.168.1.100:7860`)
|
||||||
|
4. Chrome再起動
|
||||||
|
|
||||||
|
:::warning
|
||||||
|
セキュリティが低下するため、開発・テスト用途に限定してください。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 方法3: 自己署名証明書でHTTPS化
|
||||||
|
|
||||||
|
本格運用向け。サーバー側でHTTPSを有効化。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 証明書生成
|
||||||
|
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes \
|
||||||
|
-subj "/CN=192.168.1.100"
|
||||||
|
|
||||||
|
# Pythonの場合(例: Gradio)
|
||||||
|
python app.py --ssl-keyfile key.pem --ssl-certfile cert.pem
|
||||||
|
```
|
||||||
|
|
||||||
|
ブラウザで `https://192.168.1.100:7860` にアクセスし、証明書警告を許可。
|
||||||
|
|
||||||
|
### 方法4: ngrok / Cloudflare Tunnel
|
||||||
|
|
||||||
|
外部サービス経由でHTTPS URL を取得。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ngrok http 7860
|
||||||
|
# → https://xxxx.ngrok.io が発行される
|
||||||
|
```
|
||||||
|
|
||||||
|
## 早見表
|
||||||
|
|
||||||
|
| 方法 | 難易度 | セキュリティ | 用途 |
|
||||||
|
|------|--------|------------|------|
|
||||||
|
| SSHトンネル | ★☆☆ | ◎ | 開発・日常利用 |
|
||||||
|
| Chromeフラグ | ★☆☆ | △ | 一時的なテスト |
|
||||||
|
| 自己署名証明書 | ★★☆ | ○ | チーム共有 |
|
||||||
|
| ngrok等 | ★★☆ | ◎ | 外部共有・デモ |
|
||||||
|
|
||||||
|
## 関連
|
||||||
|
|
||||||
|
- [DGX SparkでVibeVoice ASRを動かす](/tech/dgx-spark-vibevoice-asr/) — リアルタイム音声認識
|
||||||
@ -230,7 +230,9 @@ docker run --gpus all \
|
|||||||
|
|
||||||
### マイクが認識されない
|
### マイクが認識されない
|
||||||
|
|
||||||
ブラウザでマイクへのアクセス許可を確認してください。HTTPS または `localhost` からのアクセスが必要です。
|
ブラウザでマイクへのアクセス許可を確認してください。`http://IPアドレス` ではマイクが使えません。
|
||||||
|
|
||||||
|
→ **[ローカルサーバーでマイク・カメラを使う方法](/tech/browser-secure-context/)** を参照
|
||||||
|
|
||||||
## 性能の目安
|
## 性能の目安
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user