Server tương thích OpenAI
apps/openai_speech.py trong repo phục vụ POST /v1/audio/speech đúng như endpoint TTS của OpenAI (pcm/wav, chunked hoặc SSE). OpenAI SDK, Pipecat, LiveKit Agents và Vercel AI SDK chạy được chỉ bằng đổi base_url.
Khởi động server
Chọn một; tất cả lắng nghe ở http://localhost:8000:
uv run python -m apps.openai_speech # từ bản clone repo, tự nhận GPU/CPU
docker compose -f docker/docker-compose.yml --profile api-gpu up # Docker, GPU
docker compose -f docker/docker-compose.yml --profile api-cpu up # Docker, chỉ CPU (không cần torch)
Đo thời gian tới âm đầu và RTF trên máy bạn:
uv run python examples/openai_speech_client.py --bench 8
Gọi thử
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="x")
with client.audio.speech.with_streaming_response.create(
model="vieneu-v3-turbo",
voice="Mai Anh",
input="Xin chào! Đây là chế độ streaming của VieNeu.",
response_format="pcm",
) as r:
for chunk in r.iter_bytes(4096): # s16le 48 kHz mono, sinh tới đâu nhận tới đó
play(chunk)
Endpoint
| Phương thức | Đường dẫn | Mục đích |
|---|---|---|
POST | /v1/audio/speech | Tổng hợp; response_format pcm hoặc wav, dạng stream |
GET | /v1/models | Danh sách mô hình |
GET | /v1/voices | Giọng có sẵn và giọng đã đăng ký |
POST | /v1/voices | Nhân bản từ mẫu tải lên |
GET | /health | Kiểm tra sống |
Đồng thời chặn theo backend bằng VIENEU_MAX_STREAMS (mặc định 16 trên GPU, 1 trên CPU). Vượt trần thì chờ trong hàng đợi ngắn, rồi nhận 429. Âm đầu tới sau ~115 ms với 16 stream trên RTX 3060; ~140–300 ms và 1–2 stream trên CPU. Số đầy đủ: docs/streaming.md.
Web UI trong Docker
docker compose -f docker/docker-compose.yml --profile gpu up # hoặc --profile cpu → http://localhost:7860
Image và build cho production: docs/Deploy.md trong repo và trang Docker của chúng tôi.
Dùng dịch vụ có sẵn thay vì tự chạy
Không muốn nuôi GPU thì VieNeu Cloud API có cùng dạng tương thích OpenAI tại api.vieneu.io, kể cả engine v4.
Đồ cũ: chế độ remote v2 (đã bỏ)
Server LMDeploy cổng 23333 và Vieneu(mode="remote") chỉ chạy với VieNeu-TTS v2, không còn cập nhật. Giữ lại cho hệ đang chạy. Với v3 Turbo dùng server streaming ở trên.
docker run --gpus all -p 23333:23333 -v huggingface_cache:/root/.cache/huggingface pnnbao/vieneu-tts:latest --tunnel
pip install "vieneu[legacy]"
from vieneu import Vieneu
tts = Vieneu(mode="remote", api_base="http://your-server-ip:23333/v1",
model_name="pnnbao-ump/VieNeu-TTS-v2", emotion="natural")
audio = tts.infer(text="Chào bạn!")
tts.save(audio, "remote_output.wav")
Mô hình v3 Turbo fine-tune không được container đó phục vụ; nạp bằng SDK (Vieneu(mode="v3turbo", backbone_repo=...)). Cờ Docker cũ xem Remote server.