Giới thiệu
IMS Toucan là một bộ công cụ mã nguồn mở được phát triển bởi Viện Xử lý Ngôn ngữ Tự nhiên (IMS) thuộc Đại học Stuttgart. Repository này giải quyết vấn đề tổng hợp tiếng nói (Text-to-Speech - TTS) với chất lượng cao, tốc độ nhanh và khả năng kiểm soát tốt. Điểm đặc biệt của IMS Toucan là khả năng hỗ trợ đa ngôn ngữ khổng lồ (lên tới hơn 7000 ngôn ngữ) và tính năng nhân bản giọng nói (voice cloning) chỉ với lượng dữ liệu nhỏ. Dự án này được ứng dụng thực tế trong việc tạo trợ lý ảo, đọc sách nói tự động, nghiên cứu ngôn ngữ học, và hỗ trợ người khiếm thị.
Tính năng chính
- Hỗ trợ đa ngôn ngữ (Massively Multilingual): Khả năng tổng hợp tiếng nói cho hơn 7000 ngôn ngữ khác nhau nhờ sử dụng embedding ngôn ngữ.
- Voice Cloning & Prosody Control: Cho phép nhân bản giọng nói của người nói cụ thể và điều chỉnh ngữ điệu, cảm xúc, độ cao độ (pitch), và tốc độ nói.
- Kiến trúc hiện đại: Sử dụng FastSpeech 2 kết hợp với HiFi-GAN và Normalizing Flows để tạo ra âm thanh tự nhiên nhất.
- Thuần Python & PyTorch: Mã nguồn được viết hoàn toàn bằng Python và PyTorch, không phụ thuộc vào các thư viện C++ phức tạp (như Kaldi), giúp dễ dàng cài đặt và tùy chỉnh.
- Giao diện trực quan: Cung cấp GUI để người dùng có thể tinh chỉnh các tham số phát âm một cách trực quan.
Hướng dẫn cài đặt Local (macOS)
Để chạy IMS Toucan trên macOS (Apple Silicon hoặc Intel), hãy làm theo các bước sau:
- Cài đặt dependencies hệ thống:
Bạn cần cài đặt
espeak-ng(công cụ tổng hợp tiếng nói nền tảng) thông qua Homebrew:brew install espeak-ng brew install libsndfile - Clone repository:
git clone https://github.com/DigitalPhonetics/IMS-Toucan.git cd IMS-Toucan - Thiết lập môi trường Python:
Khuyến nghị sử dụng Python 3.10. Tạo môi trường ảo:
python3 -m venv venv source venv/bin/activate - Cài đặt thư viện Python:
pip install --upgrade pip pip install -r requirements.txt - Xử lý lỗi espeak (nếu có):
Trên macOS, đôi khi thư viện
phonemizerkhông tìm thấyespeak-ng. Bạn có thể cần thiết lập biến môi trường:export PHONEMIZER_ESPEAK_LIBRARY=$(brew --prefix espeak-ng)/lib/libespeak-ng.dylibThêm dòng trên vào
.zshrcnếu cần thiết.
Hướng dẫn Docker
Dự án không cung cấp sẵn Dockerfile ở thư mục gốc, nhưng bạn có thể tạo một file Dockerfile đơn giản để chạy môi trường này:
- Tạo file
Dockerfile:FROM python:3.10-slim # Cài đặt espeak-ng và các thư viện cần thiết RUN apt-get update && apt-get install -y \ espeak-ng \ libsndfile1 \ git \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy source code COPY . . # Cài đặt python dependencies RUN pip install --no-cache-dir -r requirements.txt # Command mặc định CMD ["python", "run_text_to_file_reader.py"] - Build và Run:
# Build image docker build -t ims-toucan . # Run container (ví dụ chạy script demo) docker run -it --rm -v $(pwd)/output:/app/output ims-toucan
Ví dụ Code (Example Code)
Dưới đây là đoạn code Python mẫu để tải một mô hình pre-trained và chuyển văn bản thành file âm thanh .wav:
import os
from InferenceInterfaces.ToucanTTSInterface import ToucanTTSInterface
# Tạo thư mục output nếu chưa có
os.makedirs("output", exist_ok=True)
# Khởi tạo interface (sẽ tự động tải model mặc định nếu chưa có)
# Bạn có thể chọn ngôn ngữ (VD: 'English', 'Vietnamese', 'German')
tts = ToucanTTSInterface(device="cpu", tts_model_path=None)
text = "Hello, this is a test of the IMS Toucan speech synthesis toolkit."
# Thực hiện tổng hợp tiếng nói
print("Đang tổng hợp tiếng nói...")
tts.read_to_file(
text_list=[text],
file_location="output/test_audio.wav",
language="English"
)
print("Hoàn tất! Kiểm tra file tại output/test_audio.wav")
Sources
- jimmysong.io
- github.com
- github.com
- redhat.com
- github.com
- merlio.app
- github.com
- huggingface.co
- github.com
- toucansites.com
- youtube.com
Github Page
https://github.com/DigitalPhonetics/IMS-Toucan