# 快速入门指南

只需几分钟即可使用预构建的 Docker 镜像运行 Speakr！本指南将带你了解部署 Speakr 的最快方法，支持使用 OpenAI Whisper API 或[自定义 ASR 端点](features.md#speaker-diarization)。

> **注意：** 如果你想使用 ASR 端点选项来实现说话人分离功能，你需要运行一个额外的 Docker 容器（`onerahmet/openai-whisper-asr-webservice`）。请参阅[运行 ASR 服务以支持说话人分离](getting-started/installation.md#running-asr-service-for-speaker-diarization)获取详细的设置说明。

## 前置条件

开始之前，请确保你的系统上已安装 Docker 和 Docker Compose。你还需要一个 API 密钥（OpenAI 或 OpenRouter，或兼容服务），至少 2GB 可用内存，以及约 10GB 可用磁盘空间用于存储录音和转录内容。

## 步骤 1：创建项目目录

首先，为 Speakr 安装创建一个目录并进入：

```bash
mkdir speakr
cd speakr
```

## 步骤 2：下载配置文件

下载 Docker Compose 配置，并根据你选择的转录服务选择合适的环境模板：

```bash
# Download docker compose example
wget https://raw.githubusercontent.com/murtaza-nasir/speakr/master/config/docker-compose.example.yml -O docker-compose.yml
```

现在下载环境配置模板。根据你要使用的转录服务，你有两种选择。

使用标准 OpenAI Whisper API（推荐大多数用户使用）：
```bash
wget https://raw.githubusercontent.com/murtaza-nasir/speakr/master/config/env.whisper.example -O .env
```

或使用带说话人分离功能的自定义 ASR 端点（需要额外的 ASR 容器——见下方说明）：
```bash
wget https://raw.githubusercontent.com/murtaza-nasir/speakr/master/config/env.asr.example -O .env
```

> **重要：** ASR 端点选项需要与 Speakr 一起运行一个额外的 Docker 容器（`onerahmet/openai-whisper-asr-webservice`）。有关完整的设置说明，包括两个容器的 docker-compose 配置，请参阅[运行 ASR 服务以支持说话人分离](getting-started/installation.md#running-asr-service-for-speaker-diarization)。

## 步骤 3：配置你的转录服务

在你喜欢的文本编辑器中打开 `.env` 文件，并根据你选择的服务进行配置。

### 选项 A：OpenAI Whisper 配置

如果你使用 OpenAI Whisper，你需要同时设置转录服务和文本生成模型。文本生成模型用于创建摘要、生成标题和驱动聊天功能。

编辑你的 `.env` 文件并更新以下关键变量：

```bash
# For text generation (summaries, chat, titles)
TEXT_MODEL_BASE_URL=https://openrouter.ai/api/v1
TEXT_MODEL_API_KEY=your_openrouter_api_key_here
TEXT_MODEL_NAME=openai/gpt-4o-mini

# For transcription
TRANSCRIPTION_BASE_URL=https://api.openai.com/v1
TRANSCRIPTION_API_KEY=your_openai_api_key_here
WHISPER_MODEL=whisper-1
```

文本模型可以使用 OpenRouter 来访问各种 AI 模型，或者你可以将其直接指向 OpenAI，使用与转录服务相同的基础 URL 和 API 密钥。OpenRouter 提供对多种模型的访问，包括 GPT-4、Claude 等，对于文本生成任务来说可能更具成本效益。

### 选项 B：自定义 ASR 端点配置

> **前置条件：** 此选项需要运行一个额外的 ASR 服务容器（`onerahmet/openai-whisper-asr-webservice`）。你可以：
>
> - 在同一个 Docker Compose 栈中运行两个容器（推荐）——请参阅[完整设置指南](getting-started/installation.md#running-asr-service-for-speaker-diarization)
> - 在同一台或不同的机器上单独运行 ASR 服务
> - 如果你已经部署了现有的 ASR 服务，可以直接使用

如果你使用的是自定义 ASR 服务（如 WhisperX 或自托管的 Whisper 服务器），请配置以下变量：

```bash
# For text generation (summaries, chat, titles)
TEXT_MODEL_BASE_URL=https://openrouter.ai/api/v1
TEXT_MODEL_API_KEY=your_openrouter_api_key_here
TEXT_MODEL_NAME=openai/gpt-4o-mini

# Enable ASR endpoint
USE_ASR_ENDPOINT=true

# ASR service URL (use container name if in same docker compose)
ASR_BASE_URL=http://whisper-asr:9000
```

当使用 ASR 端点时，[说话人分离](features.md#speaker-diarization)功能会自动启用，使 Speakr 能够识别录音中的不同说话人。转录完成后，你需要[识别说话人](user-guide/transcripts.md#speaker-identification)来构建你的说话人库。ASR_BASE_URL 应指向你的 ASR 服务。如果你在同一个 Docker Compose 栈中运行 ASR 服务，请使用容器名称和内部端口（如 `http://whisper-asr:9000`）。对于外部服务，请使用带有适当 IP 地址或域名的完整 URL。

## 步骤 4：配置管理员账户

Speakr 会在首次启动时自动创建一个管理员用户。在启动之前，请在 `.env` 文件中配置这些凭据：

```bash
ADMIN_USERNAME=admin
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=changeme
```

确保将这些值更改为更安全的值，尤其是密码。当你首次启动 Speakr 时，该管理员账户将自动创建，你将使用这些凭据进行登录。通过此方法创建的第一个用户将成为系统管理员，拥有对所有功能的完全访问权限，包括用户管理和系统设置。

## 步骤 5：启动 Speakr

配置完成后，使用 Docker Compose 启动 Speakr：

```bash
docker compose up -d
```

首次启动需要几分钟时间，因为 Docker 需要下载预构建镜像（约 3GB）并初始化数据库。你可以通过查看日志来监控启动过程：

```bash
docker compose logs -f app
```

查找表示 Flask 应用程序正在运行并已准备好接受连接的消息。按 Ctrl+C 退出日志视图（这不会停止容器）。

## 步骤 6：访问 Speakr

容器运行后，打开你的 Web 浏览器并访问：

```
http://localhost:8899
```

使用你在步骤 4 中配置的管理员凭据登录。现在你应该能看到 Speakr 仪表盘，已准备好进行你的第一次录音。

## 你的第一次录音

登录后，你可以立即开始使用 Speakr。点击顶部导航栏中的"New Recording"按钮，上传现有音频文件或开始[现场录音](user-guide/recording.md)。有关详细说明，请参阅[录音指南](user-guide/recording.md)。对于上传文件，Speakr 支持[常见音频格式](faq.md#what-audio-formats-does-speakr-support)，如 MP3、M4A、WAV 等，默认文件大小限制为 500MB。你可以在[系统设置](admin-guide/system-settings.md)中调整此限制。对于现场录音，你可以从麦克风、系统音频或同时进行录制。

## 可选功能

### 启用 Inquire 模式

[Inquire 模式](user-guide/inquire-mode.md)允许你使用自然语言问题在所有录音中进行搜索。在功能指南中了解更多关于[语义搜索功能](features.md#semantic-search-inquire-mode)的信息。要启用它，请在 `.env` 文件中设置：

```bash
ENABLE_INQUIRE_MODE=true
```

然后使用 `docker compose restart` 重启容器以使更改生效。

### 启用用户注册

默认情况下，只有管理员可以创建新用户。在管理员指南中了解更多关于[用户管理](admin-guide/user-management.md)的信息。要允许自行注册，请设置：

```bash
ALLOW_REGISTRATION=true
```

### 配置你的时区

设置本地时区以显示准确的时间戳：

```bash
TIMEZONE="America/New_York"
```

使用 TZ 数据库中的任何有效时区，如"Europe/London"、"Asia/Tokyo"或"UTC"。

## 停止和启动 Speakr

要停止 Speakr 同时保留所有数据：

```bash
docker compose down
```

要再次启动：

```bash
docker compose up -d
```

你的录音、转录内容和设置将保存在主机系统上的 `./uploads` 和 `./instance` 目录中。

## 故障排除

如果 Speakr 无法正常启动，请使用 `docker compose logs app` 检查日志中的错误信息。有关更详细的帮助，请参阅[故障排除指南](troubleshooting.md)，特别是[安装问题](troubleshooting.md#installation-and-setup-issues)部分。常见问题包括 API 密钥不正确（日志中会显示身份验证错误）或端口冲突（如果其他服务正在使用 8899 端口）。你可以通过编辑 `docker-compose.yml` 文件并修改 ports 部分来更改端口。

如果转录失败，请验证你的 API 密钥是否正确，并且你选择的服务有足够的额度。日志将显示详细的错误信息，有助于识别问题。

---

下一步：[安装指南](getting-started/installation.md)（用于生产部署和高级配置）
