UYGULAMALI REHBER · PIPER TTS

Kayıtlardan
sese.

Ses verilerinizi hazırlamak ve bir Piper modeli eğitmek için temel adımlar. Kaggle limitleri değişebilir: uzun bir eğitimden önce kotanızı kontrol edin.

01ARŞİV YAPISI

Piper TTS için LJSpeech veri seti oluşturun

LJSpeech, Piper tarafından beklenen standart biçimdir. Her cümle ayrı bir WAV dosyasıdır ve metadata.csv dosyasındaki transkripsiyonuyla eşleşir.

data.zip
├── metadata.csv   # nom_du_fichier|transcription
└── wavs/
    ├── 000001.wav
    └── ...
  1. 01

    Ses dosyalarını alın

    İşleyip yeniden dağıtma hakkına sahip olduğunuz kayıtları kullanın. Kaynaklar oyun vikileri, sahip olduğunuz medya veya herkese açık veri setleri olabilir.

  2. 02

    Cümlelere bölün

    Cümle başına bir WAV dosyası hazırlayın. Otomatik bölme veya hizalama için şunları kullanabilirsiniz:

    • audiosplitter · otomatik bölme
    • Montreal Forced Aligner (MFA) · zorlamalı hizalama
    • faster-whisper + VAD · transkripsiyon ve zaman damgaları
    • Audacity · küçük hacimler için manuel bölme
  3. 03

    metadata.csv oluşturun

    Dosya başına bir satır. Ayırıcı dikey çizgidir; ad, wavs/ klasöründeki dosyayla birebir eşleşmelidir.

    000001.wav|Ceci est une phrase d'exemple.
    000002.wav|Voici une autre phrase pour l'entraînement.
  4. 04

    Arşivi sıkıştırın

    metadata.csv dosyasını ve wavs/ klasörünü arşivin köküne yerleştirin.

    zip -r data.zip metadata.csv wavs/
  5. 05

    Hugging Face üzerine yükleyin

    Örneğin user/wheatley-english-ljspeech adında bir veri seti deposu oluşturun. data.zip dosyasını ve şu yapılandırmayı içeren bir README.md ekleyin:

    ---
    configs:
    - config_name: default
      data_files:
      - split: train
        path: data.zip
    ---
  6. 06

    Piper forumunda yayınlayın

    Hugging Face bağlantısı ve uygun etiketle veri setleri ve eğitim kanalında bir konu açın.

    Discord kanalını açın ↗
02KAGGLE · GPU

Kaggle üzerinde ses eğitin

GPU kotası Kaggle tarafından hesabınıza atanır ve kullanılabilirliğe göre değişebilir. Uzun bir oturum başlatmadan önce sayacı kontrol edin.

Haftalık GPU kotası30 sa · bazen daha fazla

Kaggle haftada 30 saatlik bir taban belirtir; talep ve mevcut kaynaklara göre daha yüksek olabilir. Kota cumartesi 00:00 UTC itibarıyla sıfırlanır.

Maksimum oturum süresi12 saat

Kaggle belgeleri CPU ve GPU oturumları için 12 saatlik kesintisiz bir sınır belirtir. Yalnızca CPU kullanan bir not defteri GPU kotasını tüketmez, ancak oturum süresi yine de sınırlıdır.

Kullanılabilir hızlandırıcıT4 x2

Kaggle, Tesla P100 modelini 15 Eylül 2026 tarihinde kullanımdan kaldırdı. T4 x2 not defterlerinde sunulmaya devam ediyor; Piper eğitimi için eski P100 rehberlerini değil, bunu seçin.

↻

Kesintiden sonra devam edin

Tam bir eğitim genellikle 12 saatlik oturumu aşar. Bu projenin Piper not defteri bir Hugging Face kontrol noktasından devam eder: kesinti veya tükenen kotadan sonra, kaydedilen son kontrol noktasından devam etmek için not defterini yeniden çalıştırın.

Uzun bir eğitimden önce

  • Kalan kotayı not defteri ayarlarında, profilinizde veya hızlandırıcı kullanımı sayfasında kontrol edin.
  • Kullanmadığınız GPU oturumlarını durdurun.
  • T4 x2 kullanın; P100 artık Kaggle üzerinde mevcut değildir.

Kaggle kotaları, hızlandırıcıları ve arayüzleri değişebilir. Eğitimden önce hesabınızda gösterilen bilgileri her zaman kontrol edin.

03PIPER · LOCAL TTS

Piper sesi kullanın

Piper uygulamasını kurun, seçtiğiniz sesin iki dosyasını alın ve yerel olarak bir WAV üretin. Aşağıdaki komutlar Open Home Foundation tarafından bakımı yapılan sürümü kullanır.

  1. 01

    Piper kurun

    Piper bir Python paketi olarak dağıtılır. rhasspy/piper deposunu veya ikili arşivini kullanan eski rehberler tarihsel sürüme aittir.

    python -m pip install piper-tts
    python -m piper.download_voices en_US-lessac-medium
  2. 02

    Ses indirin

    Katalogdan bir ses seçin ve ONNX modelini ile ilişkili JSON yapılandırma dosyasını indirin. İki dosyayı bir arada tutun; JSON yolu, model yolunun sonuna .json eklenmiş halidir.

    voice.onnx
    voice.onnx.json
  3. 03

    WAV dosyası üretin

    Önce Piper kataloğundan bir ses indirin veya aşağıdaki adı .onnx dosyanızın yoluyla değiştirin.

    python -m piper -m ./voice.onnx -f output.wav -- "Bonjour, ceci est un test."
  4. 04

    Metni dosyadan okuyun

    python -m piper -m ./voice.onnx -f output.wav --input-file mon_texte.txt

    Sesi doğrudan çıkışa okuyun

    Örnekleme frekansı sese bağlıdır. voice.onnx.json dosyasını kontrol edin ve gerekirse 22050 değerini değiştirin.

    echo "Bonjour." | python -m piper -m ./voice.onnx --output-raw | aplay -r 22050 -f S16_LE -c 1 -t raw
  5. 05

    Python ile

    import wave
    from piper import PiperVoice
    
    voice = PiperVoice.load("./voice.onnx")
    with wave.open("output.wav", "wb") as wav_file:
        voice.synthesize_wav("Bonjour le monde.", wav_file)
  6. 06

    Home Assistant ile

    Piper, Wyoming aracılığıyla Home Assistant ile bütünleşir. Ayarlar → Cihazlar ve hizmetler bölümünde Piper uygulamasını ekleyin, ardından Piper TTS varlığıyla tts.speak eylemini kullanın.

    Home Assistant içinde Piper kurulumu yapın ↗

    Node-RED ile

    Bazı rehberlerde geçen node-red-contrib-piper-tts paketi herkese açık katalogda doğrulanamadı. Bir seçenek, Piper komutunu yerleşik Exec düğümünden çağırmaktır; yolları ve erişim izinlerini kurulumunuza uyarlayın.

  7. 07

    Çıktıyı ayarlayın

    Kalite, diğerlerinin yanı sıra eğitim verilerine ve seçilen sese bağlıdır. Daha yüksek bir length-scale değeri konuşmayı yavaşlatır; daha düşük bir değer hızlandırır. noise-scale ve noise-w üretimin çeşitliliğini değiştirir.

    python -m piper -m ./voice.onnx --length-scale 1.5 --noise-scale 0.667 --noise-w 0.8 -f lent.wav -- "Texte lent."
    python -m piper -m ./voice.onnx --length-scale 0.7 --noise-scale 0.667 --noise-w 0.8 -f rapide.wav -- "Texte rapide."
04NODE.JS · TYPESCRIPT

pipertts ile Node.js projesinde Piper kullanın

pipertts, Piper uygulamasını Node.js ortamına taşır; dosya yazma veya bellek içi ses destekler. Önerilen mod PiperNativeTTS olur: %100 yerel süreç içi çıkarım (ONNX ve derlenmiş espeak köprüsü), Python gerektirmez, sarmalayıcıdan yaklaşık 10 kat daha hızlıdır. Sesler (.onnx + .onnx.json) ayrı dosyalar olarak kalır.

  1. 01

    Bağımlılıkları kurun

    Belgeler Node.js 18+ ve TypeScript 5+ gerektirir. Yerel mod başka bir şey istemez: normal bir npm install yeterlidir. Klasik sarmalayıcı modu (python3 -m piper üzerinden PiperTTS) ayrıca Python ve Piper modülünü gerektirir. Katalog kimliğine göre seçim, modeli ve yapılandırmasını models/ klasörüne indirebilir.

    npm install pipertts
    # mode wrapper uniquement : python3 -m pip install piper-tts
  2. 02

    Katalog sesiyle hızlı başlangıç

    import { PiperNativeTTS, resolveModelPathFromOptions } from "pipertts";
    import * as fs from "node:fs";
    
    const modelPath = await resolveModelPathFromOptions({
      model: "en_US-lessac-medium",
      modelsDir: "./models",
    });
    const tts = await PiperNativeTTS.load({ modelPath });
    
    const { audio } = await tts.synthesize("Hello from Piper.");
    fs.writeFileSync("./hello.wav", audio);
  3. 03

    Yerel model kullanın

    Manuel olarak indirdiğiniz bir ses için ONNX dosyasının yolunu verin. İlişkili .onnx.json dosyası yanında olmalıdır; konumu farklıysa configPath belirtebilirsiniz.

    import { PiperNativeTTS } from "pipertts";
    
    const tts = await PiperNativeTTS.load({
      modelPath: "./models/my-voice.onnx",
    });
    const { audio, sampleRate } = await tts.synthesize("Hello.", { speakerId: 0 });
  4. 04

    API ve biçimler

    synthesize() audio (Buffer), sampleRate ve text döndürür; outputFile ayrıca diske yazar. Seçenekler: speakerId (çok sesli ve çok tarzlı), lengthScale (> 1 yavaşlatır, < 1 hızlandırır), noiseScale, noiseWScale, sentenceSilence, normalizeAudio, volume ve outputFormat (wav, raw, mp3, ogg veya opus). mp3 ve opus için saf JS çözümleri vardır; ogg için FFmpeg gerekir. phonemize() ve synthesizeChunks() cümle cümle düşük seviyeli erişim sağlar.

  5. 05

    Eski sarmalayıcı (PiperTTS)

    PiperTTS, sentez başına bir işlemle python3 -m piper çalıştırır: yaklaşık 10 kat daha yavaştır, yalnızca yerel motorun çalışmadığı ortamlara ayrılmalıdır. Python ve Piper modülünü gerektirir.

    import { PiperTTS } from "pipertts";
    
    const tts = await PiperTTS.create({
      modelPath: "./models/en_US-lessac-medium.onnx",
    });
    await tts.synthesizeToFile("Hello from the legacy wrapper.", "./hello.wav");