Chuyển tới nội dung chính

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ẫnMục đích
POST/v1/audio/speechTổng hợp; response_format pcm hoặc wav, dạng stream
GET/v1/modelsDanh sách mô hình
GET/v1/voicesGiọng có sẵn và giọng đã đăng ký
POST/v1/voicesNhân bản từ mẫu tải lên
GET/healthKiể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ỏ)​

cảnh báo

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.