verbalcoding 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -22
- package/app-node/cli_install.test.mjs +15 -0
- package/docs/FRESH_INSTALL.md +8 -2
- package/docs/assets/figures/verbalcoding-flow.svg +45 -30
- package/docs/i18n/CONFIGURATION.es.md +239 -0
- package/docs/i18n/CONFIGURATION.fr.md +239 -0
- package/docs/i18n/CONFIGURATION.ja.md +239 -0
- package/docs/i18n/CONFIGURATION.ko.md +66 -74
- package/docs/i18n/CONFIGURATION.ru.md +239 -0
- package/docs/i18n/CONFIGURATION.zh.md +239 -0
- package/docs/i18n/FRESH_INSTALL.es.md +207 -0
- package/docs/i18n/FRESH_INSTALL.fr.md +207 -0
- package/docs/i18n/FRESH_INSTALL.ja.md +207 -0
- package/docs/i18n/FRESH_INSTALL.ko.md +60 -54
- package/docs/i18n/FRESH_INSTALL.ru.md +207 -0
- package/docs/i18n/FRESH_INSTALL.zh.md +207 -0
- package/docs/i18n/MULTI_INSTANCE.es.md +180 -0
- package/docs/i18n/MULTI_INSTANCE.fr.md +180 -0
- package/docs/i18n/MULTI_INSTANCE.ja.md +179 -0
- package/docs/i18n/MULTI_INSTANCE.ko.md +46 -46
- package/docs/i18n/MULTI_INSTANCE.ru.md +179 -0
- package/docs/i18n/MULTI_INSTANCE.zh.md +179 -0
- package/docs/i18n/README.es.md +83 -55
- package/docs/i18n/README.fr.md +85 -57
- package/docs/i18n/README.ja.md +83 -55
- package/docs/i18n/README.ko.md +47 -56
- package/docs/i18n/README.ru.md +86 -58
- package/docs/i18n/README.zh.md +83 -56
- package/docs/i18n/RELEASE.es.md +74 -0
- package/docs/i18n/RELEASE.fr.md +74 -0
- package/docs/i18n/RELEASE.ja.md +74 -0
- package/docs/i18n/RELEASE.ko.md +38 -36
- package/docs/i18n/RELEASE.ru.md +74 -0
- package/docs/i18n/RELEASE.zh.md +74 -0
- package/docs/i18n/USAGE.es.md +161 -0
- package/docs/i18n/USAGE.fr.md +161 -0
- package/docs/i18n/USAGE.ja.md +161 -0
- package/docs/i18n/USAGE.ko.md +61 -72
- package/docs/i18n/USAGE.ru.md +161 -0
- package/docs/i18n/USAGE.zh.md +161 -0
- package/package.json +1 -1
- package/scripts/bootstrap_prereqs.sh +15 -3
- package/scripts/cli.mjs +1 -1
- package/scripts/doctor.mjs +114 -8
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# 新規インストール
|
|
2
|
+
|
|
3
|
+
このガイドは、クリーンな公開インストール向けです。ローカル環境だけに依存する前提を避け、インストーラーで可能な限りブートストラップします。
|
|
4
|
+
|
|
5
|
+
## 1. CLI をインストールする
|
|
6
|
+
|
|
7
|
+
推奨 npm 手順:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g verbalcoding
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
または公開パッケージを直接実行します:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx verbalcoding setup --yes
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`npm install -g` を使った場合は、続けて次を実行します:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
vc setup --yes
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
コントリビューター向けの GitHub クローン手順:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git clone https://github.com/ca1773130n/VerbalCoding.git
|
|
29
|
+
cd VerbalCoding
|
|
30
|
+
./scripts/install.sh --yes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 2. 依存関係をブートストラップし、セットアップウィザードを実行する
|
|
34
|
+
|
|
35
|
+
npm インストールでは、現在のディレクトリにリポジトリのチェックアウトがないため、`./scripts/install.sh` を直接実行しないでください。代わりにパッケージ済み CLI ラッパーを使います:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
vc setup --yes
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`vc setup` は、インストール済み npm パッケージ内の `scripts/install.sh` を実行します。`./scripts/install.sh --yes` は GitHub クローン内にいる場合だけ使ってください:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
./scripts/install.sh --yes
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
実行される内容:
|
|
48
|
+
|
|
49
|
+
- `node_modules/` がない場合に npm 依存関係をインストールします。
|
|
50
|
+
- `npm link` で短い `vc` シェルコマンドをインストールします。
|
|
51
|
+
- OS パッケージマネージャーが対応している場合、`ffmpeg`、Node/npm、`whisper-cli` をインストールします。
|
|
52
|
+
- `models/ggml-small-q5_1.bin` をダウンロードします。
|
|
53
|
+
- `edge-tts` がまだ `PATH` にない場合、`.venv-tts` を作成して `edge-tts` をインストールします。
|
|
54
|
+
- 対話式 `.env` ウィザードを実行します。
|
|
55
|
+
|
|
56
|
+
対応するシステムブートストラップ手順:
|
|
57
|
+
|
|
58
|
+
| OS | システム依存関係の導入方法 |
|
|
59
|
+
|---|---|
|
|
60
|
+
| macOS | Homebrew: 必要に応じて `brew install node ffmpeg whisper-cpp` |
|
|
61
|
+
| Debian/Ubuntu | Node/npm、ffmpeg、Python、ビルドツールは `apt-get`。ローカル whisper.cpp ビルドにフォールバック |
|
|
62
|
+
| Fedora/RHEL | Node/npm、ffmpeg、Python、ビルドツールは `dnf`。ローカル whisper.cpp ビルドにフォールバック |
|
|
63
|
+
| Arch | Node/npm、ffmpeg、Python、ビルドツールは `pacman`。ローカル whisper.cpp ビルドにフォールバック |
|
|
64
|
+
|
|
65
|
+
便利なインストーラーのバリエーション:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
vc setup --yes --no-wizard # npm インストールから依存関係/ブートストラップのみ
|
|
69
|
+
./scripts/install.sh --yes --no-wizard # クローンから依存関係/ブートストラップのみ
|
|
70
|
+
./scripts/install.sh --skip-system # OS パッケージをインストールしない
|
|
71
|
+
./scripts/install.sh --skip-model # デフォルト STT モデルをダウンロードしない
|
|
72
|
+
./scripts/install.sh --skip-edge-tts # .venv-tts を作成しない
|
|
73
|
+
VERBALCODING_SKIP_CLI_LINK=1 ./scripts/install.sh --yes
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
OS が未対応の場合は、再実行する前に次を手動でインストールしてください:
|
|
77
|
+
|
|
78
|
+
- Node.js 20+ と npm
|
|
79
|
+
- ffmpeg
|
|
80
|
+
- venv/pip 付き Python 3
|
|
81
|
+
- whisper.cpp の `whisper-cli`
|
|
82
|
+
- 認証済み CLI エージェントバックエンドを少なくとも 1 つ(デフォルトは Hermes Agent)
|
|
83
|
+
|
|
84
|
+
## 3. Discord アプリケーションをセットアップする
|
|
85
|
+
|
|
86
|
+
初めてボットを作る場合は、まず上流の Discord ボットセットアップガイドを読んでください:
|
|
87
|
+
|
|
88
|
+
- Hermes Agent の Discord メッセージングガイド: <https://hermes-agent.nousresearch.com/docs/user-guide/messaging/discord>
|
|
89
|
+
- Discord 公式ボット概要: <https://docs.discord.com/developers/bots/overview>
|
|
90
|
+
- Discord 公式はじめにガイド: <https://docs.discord.com/developers/quick-start/getting-started>
|
|
91
|
+
|
|
92
|
+
これらのページでは、Discord アプリケーションの作成、ボットユーザーの追加、特権インテントの有効化、サーバーへの招待方法を説明しています。VerbalCoding は同じ Discord ボット設定を使い、その上に音声受信、STT、CLI エージェント実行、TTS 再生を追加します。
|
|
93
|
+
|
|
94
|
+
1. Discord Developer Portal で Discord アプリケーションとボットを作成します。
|
|
95
|
+
2. Message Content 特権インテントを有効にします。
|
|
96
|
+
3. ボットトークンをインストーラーのプロンプト、または `.env` の `DISCORD_BOT_TOKEN` にコピーします。
|
|
97
|
+
4. 招待 URL を生成します:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
vc bot invite <discord-client-id>
|
|
101
|
+
# または 1 つのサーバーに固定します:
|
|
102
|
+
vc bot invite <discord-client-id> --guild <guild-id>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
この招待には、VerbalCoding が使うボットおよびスラッシュコマンドのスコープと、テキスト/音声権限が含まれます。
|
|
106
|
+
|
|
107
|
+
## 4. 検証する
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
vc doctor
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`vc doctor` は秘密情報を伏せます。トークン/コマンド/モデルの欠落を、秘密値を出力せずに報告します。修復可能なローカル前提条件(`ffmpeg`、`whisper-cli`、デフォルトモデル、Edge TTS ヘルパー)が欠けている場合は、まずパッケージ済みブートストラップを自動的に再実行します。残った `✗` 項目を修正してから再実行してください。
|
|
114
|
+
|
|
115
|
+
期待される成功例:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
✓ Node.js
|
|
119
|
+
✓ npm
|
|
120
|
+
✓ ffmpeg
|
|
121
|
+
✓ whisper-cli
|
|
122
|
+
✓ whisper.cpp model
|
|
123
|
+
✓ Discord bot token configured — [REDACTED]
|
|
124
|
+
✓ edge-tts
|
|
125
|
+
✓ hermes CLI
|
|
126
|
+
Doctor passed. Run vc start to start VerbalCoding.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
インストーラーがローカル Edge TTS ヘルパーを作成した場合、`.env` には `.venv-tts/bin/edge-tts` を指す `EDGE_TTS_COMMAND` パスが含まれているはずです。
|
|
130
|
+
|
|
131
|
+
## 5. 単一のデフォルトボットを実行する
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
vc start
|
|
135
|
+
# または GitHub クローンから:
|
|
136
|
+
./run.sh
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
起動に成功すると、ログには次のような行が含まれます:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
Logged in as <bot-name>
|
|
143
|
+
Listening in voice channel <server> / <channel>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Discord 内:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
!ping
|
|
150
|
+
!join
|
|
151
|
+
!ask say hello briefly
|
|
152
|
+
!verbose on
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
その後、設定済みの音声チャンネルで話してください。STT テキスト、詳細モードがオンの場合の進捗テキスト、最終テキスト回答が表示され、TTS 再生が聞こえるはずです。
|
|
156
|
+
|
|
157
|
+
## 6. プロジェクトごとのルーム設定
|
|
158
|
+
|
|
159
|
+
プロジェクト音声ルームごとに 1 つの永続ボットを使うには、プロジェクトごとに Discord アプリケーションを 1 つ作成してから、次を実行します:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
vc instance setup my-project
|
|
163
|
+
vc bot invite <that-project-client-id>
|
|
164
|
+
vc instance start my-project
|
|
165
|
+
vc instance status my-project
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
各インスタンスは、独自のトークン、音声チャンネル、文字起こし先、ログパス、Hermes セッションファイル、任意の Hermes プロファイルを含む、git で無視される `instances/<name>.env` を書き込みます。
|
|
169
|
+
|
|
170
|
+
## 7. 任意の OpenVoice セットアップ
|
|
171
|
+
|
|
172
|
+
OpenVoice の音声クローンは任意です。新規の公開インストールでは `TTS_BACKEND=edge` のままにしてください。後で OpenVoice を有効にするには:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
./scripts/setup_openvoice.sh
|
|
176
|
+
# OpenVoice V2 checkpoints を vendor/OpenVoice/checkpoints_v2/ にダウンロードします
|
|
177
|
+
# 許可済みのローカルサンプルを voice-samples/user-reference.wav に追加するか、
|
|
178
|
+
# ボットを実行して「목소리 샘플 녹음 시작해」と言い、その後 10〜30 秒話します。
|
|
179
|
+
python3 integrations/openvoice/synth.py --openvoice-dir vendor/OpenVoice --ref-audio voice-samples/user-reference.wav --text '안녕하세요. 버벌코딩 목소리 복제 테스트입니다.' --output /tmp/verbalcoding-openvoice-smoke.wav
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
次に `TTS_BACKEND=openvoice` を設定し、`vc doctor` を実行して、Discord で `!voice-test <text>` をテストします。
|
|
183
|
+
|
|
184
|
+
## 8. メンテナー向けクリーンクローンのスモークテスト
|
|
185
|
+
|
|
186
|
+
ホストのみでの高速スモークテスト:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
TMPDIR=$(mktemp -d)
|
|
190
|
+
git clone https://github.com/ca1773130n/VerbalCoding.git "$TMPDIR/VerbalCoding"
|
|
191
|
+
cd "$TMPDIR/VerbalCoding"
|
|
192
|
+
./scripts/install.sh --yes --no-wizard
|
|
193
|
+
npm pack --dry-run
|
|
194
|
+
cp .env.example .env
|
|
195
|
+
chmod 600 .env
|
|
196
|
+
vc doctor || true
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
この時点で期待される失敗は、ローカル秘密情報の欠落またはエージェント CLI が未認証であることです。トークン漏えいやインストールスクリプトの欠落ではありません。
|
|
200
|
+
|
|
201
|
+
Docker ベースの Ubuntu クリーンインストールスモークテスト:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
./scripts/docker_ubuntu_smoke.sh
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
これは `ubuntu:24.04` を実行し、追跡対象のリポジトリツリーをクリーンなコンテナへコピーし、`./scripts/install.sh --yes --no-wizard` を実行し、秘密情報を含まないスモーク用 `.env` を書き、`vc` を確認し、Node テストを実行して、`vc doctor` を検証します。Discord 音声には接続しません。エンドツーエンドの音声チャンネルテストが必要な場合は、この後で実際の Ubuntu VM または WSL2 を使ってください。
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 새로 설치하기
|
|
2
2
|
|
|
3
|
-
이
|
|
3
|
+
이 가이드는 깨끗한 공개 설치를 위한 문서입니다. 로컬 환경에만 맞춘 가정을 피하고, 설치 프로그램으로 가능한 한 많은 부분을 부트스트랩합니다.
|
|
4
4
|
|
|
5
5
|
## 1. CLI 설치
|
|
6
6
|
|
|
7
|
-
권장 npm
|
|
7
|
+
권장 npm 경로:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g verbalcoding
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
또는 게시된 패키지를 바로 실행합니다:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
npx verbalcoding setup --yes
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
`npm install -g`를 사용했다면 다음을 계속 실행하세요:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
vc setup --yes
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
기여자를 위한 GitHub 클론 경로:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
git clone https://github.com/ca1773130n/VerbalCoding.git
|
|
@@ -30,83 +30,89 @@ cd VerbalCoding
|
|
|
30
30
|
./scripts/install.sh --yes
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
## 2. 의존성
|
|
33
|
+
## 2. 의존성 부트스트랩 및 설정 마법사 실행
|
|
34
34
|
|
|
35
|
-
npm
|
|
35
|
+
npm 설치에서는 현재 디렉터리에 저장소 체크아웃이 없으므로 `./scripts/install.sh`를 직접 실행하지 마세요. 대신 패키지된 CLI 래퍼를 사용하세요:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
vc setup --yes
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`vc setup`은 설치된 npm 패키지 안의 `scripts/install.sh`를 실행합니다. GitHub 클론 안에 있을 때만 `./scripts/install.sh --yes`를 사용하세요:
|
|
36
42
|
|
|
37
43
|
```bash
|
|
38
44
|
./scripts/install.sh --yes
|
|
39
45
|
```
|
|
40
46
|
|
|
41
|
-
|
|
47
|
+
수행되는 작업:
|
|
42
48
|
|
|
43
49
|
- `node_modules/`가 없으면 npm 의존성을 설치합니다.
|
|
44
|
-
-
|
|
45
|
-
- OS 패키지
|
|
46
|
-
-
|
|
47
|
-
- `edge-tts`가 PATH
|
|
48
|
-
- 대화형 `.env`
|
|
50
|
+
- `npm link`로 짧은 `vc` 셸 명령을 설치합니다.
|
|
51
|
+
- OS 패키지 관리자가 지원하는 경우 `ffmpeg`, Node/npm, `whisper-cli`를 설치합니다.
|
|
52
|
+
- `models/ggml-small-q5_1.bin`을 다운로드합니다.
|
|
53
|
+
- `edge-tts`가 `PATH`에 없으면 `.venv-tts`를 만들고 `edge-tts`를 설치합니다.
|
|
54
|
+
- 대화형 `.env` 마법사를 실행합니다.
|
|
49
55
|
|
|
50
56
|
지원되는 시스템 부트스트랩 경로:
|
|
51
57
|
|
|
52
58
|
| OS | 시스템 의존성 경로 |
|
|
53
59
|
|---|---|
|
|
54
|
-
| macOS |
|
|
55
|
-
| Debian/Ubuntu |
|
|
56
|
-
| Fedora/RHEL |
|
|
57
|
-
| Arch |
|
|
60
|
+
| macOS | 필요 시 Homebrew: `brew install node ffmpeg whisper-cpp` |
|
|
61
|
+
| Debian/Ubuntu | Node/npm, ffmpeg, Python, 빌드 도구는 `apt-get`; 로컬 whisper.cpp 빌드 폴백 |
|
|
62
|
+
| Fedora/RHEL | Node/npm, ffmpeg, Python, 빌드 도구는 `dnf`; 로컬 whisper.cpp 빌드 폴백 |
|
|
63
|
+
| Arch | Node/npm, ffmpeg, Python, 빌드 도구는 `pacman`; 로컬 whisper.cpp 빌드 폴백 |
|
|
58
64
|
|
|
59
65
|
유용한 설치 변형:
|
|
60
66
|
|
|
61
67
|
```bash
|
|
62
|
-
vc setup --yes --no-wizard # npm 설치에서
|
|
63
|
-
./scripts/install.sh --yes --no-wizard # 클론에서
|
|
64
|
-
./scripts/install.sh --skip-system # OS
|
|
65
|
-
./scripts/install.sh --skip-model # 기본 STT
|
|
66
|
-
./scripts/install.sh --skip-edge-tts # .venv-tts
|
|
68
|
+
vc setup --yes --no-wizard # npm 설치에서 의존성/부트스트랩만 실행
|
|
69
|
+
./scripts/install.sh --yes --no-wizard # 클론에서 의존성/부트스트랩만 실행
|
|
70
|
+
./scripts/install.sh --skip-system # OS 패키지를 설치하지 않음
|
|
71
|
+
./scripts/install.sh --skip-model # 기본 STT 모델을 다운로드하지 않음
|
|
72
|
+
./scripts/install.sh --skip-edge-tts # .venv-tts를 만들지 않음
|
|
67
73
|
VERBALCODING_SKIP_CLI_LINK=1 ./scripts/install.sh --yes
|
|
68
74
|
```
|
|
69
75
|
|
|
70
|
-
OS가 지원되지 않으면
|
|
76
|
+
OS가 지원되지 않으면 다시 실행하기 전에 다음을 수동으로 설치하세요:
|
|
71
77
|
|
|
72
78
|
- Node.js 20+ 및 npm
|
|
73
79
|
- ffmpeg
|
|
74
80
|
- venv/pip가 포함된 Python 3
|
|
75
81
|
- whisper.cpp `whisper-cli`
|
|
76
|
-
- 인증된 CLI 에이전트 백엔드 하나
|
|
82
|
+
- 인증된 CLI 에이전트 백엔드 하나 이상, 기본값은 Hermes Agent
|
|
77
83
|
|
|
78
84
|
## 3. Discord 애플리케이션 설정
|
|
79
85
|
|
|
80
|
-
|
|
86
|
+
처음 봇을 만드는 경우 먼저 업스트림 Discord 봇 설정 가이드를 읽으세요:
|
|
81
87
|
|
|
82
88
|
- Hermes Agent Discord 메시징 가이드: <https://hermes-agent.nousresearch.com/docs/user-guide/messaging/discord>
|
|
83
89
|
- Discord 공식 봇 개요: <https://docs.discord.com/developers/bots/overview>
|
|
84
90
|
- Discord 공식 시작 가이드: <https://docs.discord.com/developers/quick-start/getting-started>
|
|
85
91
|
|
|
86
|
-
|
|
92
|
+
이 페이지들은 Discord 애플리케이션 생성, 봇 사용자 추가, privileged intents 활성화, 서버 초대 방법을 보여줍니다. VerbalCoding은 동일한 Discord 봇 설정을 사용한 뒤 그 위에 음성 수신, STT, CLI 에이전트 실행, TTS 재생을 추가합니다.
|
|
87
93
|
|
|
88
|
-
1. Discord Developer Portal에서 애플리케이션과 봇을 만듭니다.
|
|
89
|
-
2. Message Content privileged intent를
|
|
90
|
-
3. 봇 토큰을 설치 프롬프트 또는 `.env`의 `DISCORD_BOT_TOKEN`에
|
|
91
|
-
4. 초대 URL을
|
|
94
|
+
1. Discord Developer Portal에서 Discord 애플리케이션과 봇을 만듭니다.
|
|
95
|
+
2. Message Content privileged intent를 활성화합니다.
|
|
96
|
+
3. 봇 토큰을 설치 프로그램 프롬프트 또는 `.env`의 `DISCORD_BOT_TOKEN`에 복사합니다.
|
|
97
|
+
4. 초대 URL을 생성합니다:
|
|
92
98
|
|
|
93
99
|
```bash
|
|
94
100
|
vc bot invite <discord-client-id>
|
|
95
|
-
#
|
|
101
|
+
# 또는 하나의 서버에 고정:
|
|
96
102
|
vc bot invite <discord-client-id> --guild <guild-id>
|
|
97
103
|
```
|
|
98
104
|
|
|
99
|
-
|
|
105
|
+
초대에는 VerbalCoding이 사용하는 텍스트/음성 권한과 bot 및 slash-command scope가 포함됩니다.
|
|
100
106
|
|
|
101
|
-
## 4.
|
|
107
|
+
## 4. 확인
|
|
102
108
|
|
|
103
109
|
```bash
|
|
104
110
|
vc doctor
|
|
105
111
|
```
|
|
106
112
|
|
|
107
|
-
`vc doctor`는
|
|
113
|
+
`vc doctor`는 민감 정보를 가립니다. 비밀 값을 출력하지 않고 누락된 토큰/명령/모델을 보고합니다. 수정 가능한 로컬 필수 구성요소(`ffmpeg`, `whisper-cli`, 기본 모델, Edge TTS 헬퍼)가 없으면 먼저 패키지된 부트스트랩을 자동으로 다시 실행합니다. 남은 `✗` 항목을 고친 뒤 다시 실행하세요.
|
|
108
114
|
|
|
109
|
-
성공
|
|
115
|
+
예상 성공 출력에는 다음이 포함됩니다:
|
|
110
116
|
|
|
111
117
|
```text
|
|
112
118
|
✓ Node.js
|
|
@@ -120,9 +126,9 @@ vc doctor
|
|
|
120
126
|
Doctor passed. Run vc start to start VerbalCoding.
|
|
121
127
|
```
|
|
122
128
|
|
|
123
|
-
|
|
129
|
+
설치 프로그램이 로컬 Edge TTS 헬퍼를 만들었다면 `.env`에는 `.venv-tts/bin/edge-tts`를 가리키는 `EDGE_TTS_COMMAND` 경로가 있어야 합니다.
|
|
124
130
|
|
|
125
|
-
## 5. 기본
|
|
131
|
+
## 5. 단일 기본 봇 실행
|
|
126
132
|
|
|
127
133
|
```bash
|
|
128
134
|
vc start
|
|
@@ -130,7 +136,7 @@ vc start
|
|
|
130
136
|
./run.sh
|
|
131
137
|
```
|
|
132
138
|
|
|
133
|
-
|
|
139
|
+
성공적인 시작 로그에는 다음이 포함됩니다:
|
|
134
140
|
|
|
135
141
|
```text
|
|
136
142
|
Logged in as <bot-name>
|
|
@@ -146,11 +152,11 @@ Discord에서:
|
|
|
146
152
|
!verbose on
|
|
147
153
|
```
|
|
148
154
|
|
|
149
|
-
|
|
155
|
+
그런 다음 설정된 음성 채널에서 말하세요. STT 텍스트, 자세한 모드가 켜졌을 때의 진행 텍스트, 최종 텍스트 답변을 볼 수 있고 TTS 재생도 들을 수 있어야 합니다.
|
|
150
156
|
|
|
151
|
-
## 6. 프로젝트별
|
|
157
|
+
## 6. 프로젝트별 방 설정
|
|
152
158
|
|
|
153
|
-
프로젝트
|
|
159
|
+
프로젝트 음성 방마다 하나의 영구 봇을 두려면 프로젝트마다 Discord 애플리케이션을 하나씩 만들고 다음을 실행하세요:
|
|
154
160
|
|
|
155
161
|
```bash
|
|
156
162
|
vc instance setup my-project
|
|
@@ -159,25 +165,25 @@ vc instance start my-project
|
|
|
159
165
|
vc instance status my-project
|
|
160
166
|
```
|
|
161
167
|
|
|
162
|
-
각 인스턴스는
|
|
168
|
+
각 인스턴스는 자체 토큰, 음성 채널, 전사 대상, 로그 경로, Hermes 세션 파일, 선택적 Hermes 프로필을 가진 무시되는 `instances/<name>.env`를 작성합니다.
|
|
163
169
|
|
|
164
|
-
## 7.
|
|
170
|
+
## 7. 선택 사항: OpenVoice 설정
|
|
165
171
|
|
|
166
|
-
OpenVoice 음성 복제는 선택
|
|
172
|
+
OpenVoice 음성 복제는 선택 사항입니다. 깨끗한 공개 설치에서는 `TTS_BACKEND=edge`를 유지하세요. 나중에 OpenVoice를 활성화하려면:
|
|
167
173
|
|
|
168
174
|
```bash
|
|
169
175
|
./scripts/setup_openvoice.sh
|
|
170
|
-
# OpenVoice V2
|
|
171
|
-
#
|
|
172
|
-
#
|
|
176
|
+
# OpenVoice V2 checkpoints를 vendor/OpenVoice/checkpoints_v2/에 다운로드합니다.
|
|
177
|
+
# 허용된 로컬 샘플을 voice-samples/user-reference.wav에 추가하거나,
|
|
178
|
+
# 봇을 실행하고 "목소리 샘플 녹음 시작해"라고 말한 뒤 10-30초 동안 말합니다.
|
|
173
179
|
python3 integrations/openvoice/synth.py --openvoice-dir vendor/OpenVoice --ref-audio voice-samples/user-reference.wav --text '안녕하세요. 버벌코딩 목소리 복제 테스트입니다.' --output /tmp/verbalcoding-openvoice-smoke.wav
|
|
174
180
|
```
|
|
175
181
|
|
|
176
|
-
|
|
182
|
+
그런 다음 `TTS_BACKEND=openvoice`를 설정하고 `vc doctor`를 실행한 뒤 Discord에서 `!voice-test <text>`를 테스트하세요.
|
|
177
183
|
|
|
178
|
-
## 8.
|
|
184
|
+
## 8. 유지관리자를 위한 깨끗한 클론 스모크 테스트
|
|
179
185
|
|
|
180
|
-
빠른 호스트 스모크 테스트:
|
|
186
|
+
빠른 호스트 전용 스모크 테스트:
|
|
181
187
|
|
|
182
188
|
```bash
|
|
183
189
|
TMPDIR=$(mktemp -d)
|
|
@@ -190,12 +196,12 @@ chmod 600 .env
|
|
|
190
196
|
vc doctor || true
|
|
191
197
|
```
|
|
192
198
|
|
|
193
|
-
이
|
|
199
|
+
이 시점의 예상 실패는 로컬 비밀 정보 누락 또는 인증되지 않은 에이전트 CLI이며, 토큰 유출이나 설치 스크립트 누락이 아니어야 합니다.
|
|
194
200
|
|
|
195
|
-
Docker 기반 Ubuntu
|
|
201
|
+
Docker 기반 Ubuntu 깨끗한 설치 스모크 테스트:
|
|
196
202
|
|
|
197
203
|
```bash
|
|
198
204
|
./scripts/docker_ubuntu_smoke.sh
|
|
199
205
|
```
|
|
200
206
|
|
|
201
|
-
이 스크립트는 `ubuntu:24.04
|
|
207
|
+
이 스크립트는 `ubuntu:24.04`를 실행하고, 추적 중인 저장소 트리를 깨끗한 컨테이너로 복사하고, `./scripts/install.sh --yes --no-wizard`를 실행하고, 비밀이 아닌 스모크 `.env`를 작성하고, `vc`를 확인하고, Node 테스트를 실행하고, `vc doctor`를 검증합니다. Discord 음성에는 연결하지 않습니다. 이후 엔드투엔드 음성 채널 테스트가 필요하면 실제 Ubuntu VM 또는 WSL2를 사용하세요.
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Чистая установка
|
|
2
|
+
|
|
3
|
+
Это руководство предназначено для чистой публичной установки. Оно избегает локальных предположений и использует установщик, чтобы подготовить как можно больше компонентов.
|
|
4
|
+
|
|
5
|
+
## 1. Установите CLI
|
|
6
|
+
|
|
7
|
+
Рекомендуемый путь через npm:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g verbalcoding
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Или запустите опубликованный пакет напрямую:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx verbalcoding setup --yes
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Если вы использовали `npm install -g`, продолжите так:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
vc setup --yes
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Путь через клон GitHub для контрибьюторов:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git clone https://github.com/ca1773130n/VerbalCoding.git
|
|
29
|
+
cd VerbalCoding
|
|
30
|
+
./scripts/install.sh --yes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 2. Подготовьте зависимости и запустите мастер настройки
|
|
34
|
+
|
|
35
|
+
При установке через npm не запускайте `./scripts/install.sh` напрямую: в текущем каталоге нет checkout репозитория. Вместо этого используйте упакованную CLI-обёртку:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
vc setup --yes
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`vc setup` запускает `scripts/install.sh`, включённый в установленный npm-пакет. Используйте `./scripts/install.sh --yes` только внутри GitHub-клона:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
./scripts/install.sh --yes
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Что это делает:
|
|
48
|
+
|
|
49
|
+
- устанавливает npm-зависимости, если отсутствует `node_modules/`,
|
|
50
|
+
- устанавливает короткую shell-команду `vc` через `npm link`,
|
|
51
|
+
- устанавливает `ffmpeg`, Node/npm и `whisper-cli`, когда это поддерживается менеджером пакетов ОС,
|
|
52
|
+
- загружает `models/ggml-small-q5_1.bin`,
|
|
53
|
+
- создаёт `.venv-tts` и устанавливает `edge-tts`, если `edge-tts` ещё не находится в `PATH`,
|
|
54
|
+
- запускает интерактивный мастер `.env`.
|
|
55
|
+
|
|
56
|
+
Поддерживаемые пути системного bootstrap:
|
|
57
|
+
|
|
58
|
+
| ОС | Путь системных зависимостей |
|
|
59
|
+
|---|---|
|
|
60
|
+
| macOS | Homebrew: `brew install node ffmpeg whisper-cpp` при необходимости |
|
|
61
|
+
| Debian/Ubuntu | `apt-get` для Node/npm, ffmpeg, Python, инструментов сборки; резервная локальная сборка whisper.cpp |
|
|
62
|
+
| Fedora/RHEL | `dnf` для Node/npm, ffmpeg, Python, инструментов сборки; резервная локальная сборка whisper.cpp |
|
|
63
|
+
| Arch | `pacman` для Node/npm, ffmpeg, Python, инструментов сборки; резервная локальная сборка whisper.cpp |
|
|
64
|
+
|
|
65
|
+
Полезные варианты установщика:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
vc setup --yes --no-wizard # dependency/bootstrap only from npm install
|
|
69
|
+
./scripts/install.sh --yes --no-wizard # dependency/bootstrap only from a clone
|
|
70
|
+
./scripts/install.sh --skip-system # do not install OS packages
|
|
71
|
+
./scripts/install.sh --skip-model # do not download the default STT model
|
|
72
|
+
./scripts/install.sh --skip-edge-tts # do not create .venv-tts
|
|
73
|
+
VERBALCODING_SKIP_CLI_LINK=1 ./scripts/install.sh --yes
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Если ваша ОС не поддерживается, установите это вручную перед повторным запуском:
|
|
77
|
+
|
|
78
|
+
- Node.js 20+ и npm
|
|
79
|
+
- ffmpeg
|
|
80
|
+
- Python 3 с venv/pip
|
|
81
|
+
- `whisper-cli` из whisper.cpp
|
|
82
|
+
- один аутентифицированный бэкенд CLI-агента, по умолчанию Hermes Agent
|
|
83
|
+
|
|
84
|
+
## 3. Настройка приложения Discord
|
|
85
|
+
|
|
86
|
+
Если это ваш первый бот, сначала прочитайте исходные руководства по настройке ботов Discord:
|
|
87
|
+
|
|
88
|
+
- Руководство Hermes Agent по сообщениям Discord: <https://hermes-agent.nousresearch.com/docs/user-guide/messaging/discord>
|
|
89
|
+
- Официальный обзор ботов Discord: <https://docs.discord.com/developers/bots/overview>
|
|
90
|
+
- Официальное руководство Discord по началу работы: <https://docs.discord.com/developers/quick-start/getting-started>
|
|
91
|
+
|
|
92
|
+
Эти страницы показывают, как создать приложение Discord, добавить пользователя-бота, включить привилегированные intents и пригласить его на сервер. VerbalCoding использует ту же настройку Discord-бота, а затем добавляет поверх неё приём голоса, STT, выполнение CLI-агента и воспроизведение TTS.
|
|
93
|
+
|
|
94
|
+
1. Создайте приложение Discord и бота в Discord Developer Portal.
|
|
95
|
+
2. Включите привилегированный intent Message Content.
|
|
96
|
+
3. Скопируйте токен бота в приглашение установщика или в `.env` как `DISCORD_BOT_TOKEN`.
|
|
97
|
+
4. Сгенерируйте URL приглашения:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
vc bot invite <discord-client-id>
|
|
101
|
+
# or pin it to one server:
|
|
102
|
+
vc bot invite <discord-client-id> --guild <guild-id>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Приглашение включает scopes бота и slash-команд, а также текстовые/голосовые разрешения, используемые VerbalCoding.
|
|
106
|
+
|
|
107
|
+
## 4. Проверьте
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
vc doctor
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`vc doctor` редактирует чувствительные данные: он сообщает об отсутствующих токенах/командах/моделях, не печатая секретные значения. Если отсутствуют исправимые локальные зависимости (`ffmpeg`, `whisper-cli`, стандартная модель или помощник Edge TTS), он сначала автоматически перезапускает упакованный bootstrap. Исправьте оставшиеся пункты `✗`, затем запустите снова.
|
|
114
|
+
|
|
115
|
+
Ожидаемый успешный результат включает:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
✓ Node.js
|
|
119
|
+
✓ npm
|
|
120
|
+
✓ ffmpeg
|
|
121
|
+
✓ whisper-cli
|
|
122
|
+
✓ whisper.cpp model
|
|
123
|
+
✓ Discord bot token configured — [REDACTED]
|
|
124
|
+
✓ edge-tts
|
|
125
|
+
✓ hermes CLI
|
|
126
|
+
Doctor passed. Run vc start to start VerbalCoding.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Если установщик создал локальный помощник Edge TTS, `.env` должен содержать путь `EDGE_TTS_COMMAND`, указывающий на `.venv-tts/bin/edge-tts`.
|
|
130
|
+
|
|
131
|
+
## 5. Запустите одного бота по умолчанию
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
vc start
|
|
135
|
+
# or, from a GitHub clone:
|
|
136
|
+
./run.sh
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Логи успешного запуска включают:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
Logged in as <bot-name>
|
|
143
|
+
Listening in voice channel <server> / <channel>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
В Discord:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
!ping
|
|
150
|
+
!join
|
|
151
|
+
!ask say hello briefly
|
|
152
|
+
!verbose on
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Затем говорите в настроенном голосовом канале. Вы должны увидеть текст STT, текст прогресса при включённом подробном режиме, финальный текстовый ответ и услышать воспроизведение TTS.
|
|
156
|
+
|
|
157
|
+
## 6. Настройка «проект на комнату»
|
|
158
|
+
|
|
159
|
+
Для одного постоянного бота на голосовую комнату проекта создайте по одному приложению Discord на проект, затем:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
vc instance setup my-project
|
|
163
|
+
vc bot invite <that-project-client-id>
|
|
164
|
+
vc instance start my-project
|
|
165
|
+
vc instance status my-project
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Каждый экземпляр записывает игнорируемый `instances/<name>.env` со своим токеном, голосовым каналом, целью расшифровок, путём лога, файлом сессии Hermes и необязательным профилем Hermes.
|
|
169
|
+
|
|
170
|
+
## 7. Необязательная настройка OpenVoice
|
|
171
|
+
|
|
172
|
+
Клонирование голоса OpenVoice необязательно. Для свежей публичной установки оставьте `TTS_BACKEND=edge`. Чтобы позже включить OpenVoice:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
./scripts/setup_openvoice.sh
|
|
176
|
+
# Download OpenVoice V2 checkpoints into vendor/OpenVoice/checkpoints_v2/
|
|
177
|
+
# Add a permitted local sample at voice-samples/user-reference.wav,
|
|
178
|
+
# or run the bot, say "목소리 샘플 녹음 시작해", then speak 10-30 seconds.
|
|
179
|
+
python3 integrations/openvoice/synth.py --openvoice-dir vendor/OpenVoice --ref-audio voice-samples/user-reference.wav --text '안녕하세요. 버벌코딩 목소리 복제 테스트입니다.' --output /tmp/verbalcoding-openvoice-smoke.wav
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Затем установите `TTS_BACKEND=openvoice`, запустите `vc doctor` и протестируйте `!voice-test <text>` в Discord.
|
|
183
|
+
|
|
184
|
+
## 8. Smoke-тест чистого клона для сопровождающих
|
|
185
|
+
|
|
186
|
+
Быстрый smoke-тест только на хосте:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
TMPDIR=$(mktemp -d)
|
|
190
|
+
git clone https://github.com/ca1773130n/VerbalCoding.git "$TMPDIR/VerbalCoding"
|
|
191
|
+
cd "$TMPDIR/VerbalCoding"
|
|
192
|
+
./scripts/install.sh --yes --no-wizard
|
|
193
|
+
npm pack --dry-run
|
|
194
|
+
cp .env.example .env
|
|
195
|
+
chmod 600 .env
|
|
196
|
+
vc doctor || true
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Ожидаемая ошибка на этом этапе — отсутствующие локальные секреты или неаутентифицированный CLI агента, а не утёкшие токены или отсутствующие установочные скрипты.
|
|
200
|
+
|
|
201
|
+
Smoke-тест чистой установки Ubuntu на базе Docker:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
./scripts/docker_ubuntu_smoke.sh
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Он запускает `ubuntu:24.04`, копирует отслеживаемое дерево репозитория в чистый контейнер, выполняет `./scripts/install.sh --yes --no-wizard`, записывает несекретный smoke `.env`, проверяет `vc`, запускает Node-тесты и проверяет `vc doctor`. Он не подключается к голосу Discord; используйте настоящую Ubuntu VM или WSL2 после этого, если нужен сквозной тест голосового канала.
|