व्यावहारिक मार्गदर्शिका · PIPER TTS

रिकॉर्डिंग से
आवाज़ तक।

वॉइस डेटा तैयार करने और Piper मॉडल प्रशिक्षित करने के आवश्यक चरण। Kaggle की सीमाएँ बदल सकती हैं: लंबे प्रशिक्षण से पहले अपना कोटा जाँच लें।

01आर्काइव संरचना

Piper TTS हेतु LJSpeech डेटासेट बनाएँ

LJSpeech वह मानक प्रारूप है जिसकी Piper अपेक्षा करता है। प्रत्येक वाक्य एक अलग WAV फ़ाइल है, metadata.csv में उसके प्रतिलेख के साथ जुड़ी हुई।

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

    ऑडियो फ़ाइलें एकत्र करें

    ऐसी रिकॉर्डिंग उपयोग करें जिन्हें आप संसाधित और पुनर्वितरित कर सकते हैं। स्रोतों में गेम विकी, आपके स्वामित्व वाला मीडिया, या सार्वजनिक डेटासेट हो सकते हैं।

  2. 02

    ऑडियो को वाक्यों में बाँटें

    प्रति वाक्य 1 WAV फ़ाइल तैयार करें। स्वचालित विभाजन या संरेखण हेतु आप इनका उपयोग कर सकते हैं:

    • audiosplitter · स्वचालित विभाजन
    • Montreal Forced Aligner (MFA) · बाध्य संरेखण
    • faster-whisper + VAD · प्रतिलेखन और टाइमस्टैम्प
    • Audacity · कम मात्रा हेतु हस्तचालित विभाजन
  3. 03

    metadata.csv बनाएँ

    प्रति फ़ाइल 1 पंक्ति। विभाजक खड़ी रेखा है; नाम wavs/ में स्थित फ़ाइल से बिल्कुल मेल खाना चाहिए।

    000001.wav|यह एक उदाहरण वाक्य है।
    000002.wav|प्रशिक्षण हेतु यह एक और वाक्य है।
  4. 04

    आर्काइव संपीड़ित करें

    metadata.csv और wavs/ फ़ोल्डर को आर्काइव की जड़ में रखें।

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

    Hugging Face पर अपलोड करें

    एक डेटासेट रिपॉज़िटरी बनाएँ, उदाहरण हेतु user/wheatley-english-ljspeech। data.zip और इस कॉन्फ़िगरेशन वाला README.md जोड़ें:

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

    Piper फ़ोरम में प्रकाशित करें

    Hugging Face लिंक और उपयुक्त टैग के साथ डेटासेट व प्रशिक्षण चैनल में नया थ्रेड बनाएँ।

    Discord चैनल खोलें ↗
02KAGGLE · GPU

Kaggle पर आवाज़ प्रशिक्षित करें

Kaggle GPU कोटा आपके खाते को देता है और उपलब्धता के अनुसार बदल सकता है। लंबा सत्र शुरू करने से पहले काउंटर जाँच लें।

साप्ताहिक GPU कोटा30 घंटे · कभी-कभी अधिक

Kaggle प्रति सप्ताह 30 घंटे का आधार बताता है, जो माँग और उपलब्ध संसाधनों के अनुसार अधिक हो सकता है। कोटा शनिवार को 00:00 UTC पर रीसेट होता है।

एक सत्र की अधिकतम अवधि12 घंटे

Kaggle प्रलेखन CPU और GPU सत्रों हेतु निरंतर 12 घंटे की सीमा बताता है। CPU नोटबुक GPU कोटा खर्च नहीं करता, पर उसके सत्र की अवधि फिर भी सीमित रहती है।

उपलब्ध त्वरकT4 x2

Kaggle ने 15 सितंबर 2026 को Tesla P100 हटा दिया। नोटबुक में T4 x2 उपलब्ध है; पुराने P100 मार्गदर्शनों का पालन करने के बजाय Piper प्रशिक्षण हेतु उसे चुनें।

↻

रुकावट के बाद फिर शुरू करें

पूर्ण प्रशिक्षण प्रायः 12 घंटे के एक सत्र से अधिक होता है। इस परियोजना का Piper नोटबुक Hugging Face चेकपॉइंट से फिर शुरू होता है: रुकावट या समाप्त कोटे के बाद उसे दोबारा चलाकर अंतिम सहेजे गए चेकपॉइंट से जारी रखें।

लंबे प्रशिक्षण से पहले

  • नोटबुक सेटिंग, अपनी प्रोफ़ाइल या त्वरक उपयोग पृष्ठ में शेष कोटा जाँचें।
  • उपयोग न होने पर GPU सत्र बंद करें।
  • T4 x2 उपयोग करें; P100 अब Kaggle पर उपलब्ध नहीं है।

Kaggle के कोटे, त्वरक और इंटरफ़ेस बदल सकते हैं। प्रशिक्षण से पहले अपने खाते में दिख रही जानकारी अवश्य जाँचें।

03PIPER · LOCAL TTS

Piper आवाज़ उपयोग करें

Piper स्थापित करें, चुनी हुई आवाज़ की 2 फ़ाइलें लें, फिर स्थानीय रूप से WAV बनाएँ। नीचे दी गई कमांड Open Home Foundation द्वारा अनुरक्षित संस्करण का उपयोग करती हैं।

  1. 01

    Piper स्थापित करें

    Piper एक Python पैकेज के रूप में वितरित है। rhasspy/piper रिपॉज़िटरी या उसके बाइनरी आर्काइव का उपयोग करने वाले पुराने मार्गदर्शन ऐतिहासिक संस्करण से जुड़े हैं।

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

    आवाज़ डाउनलोड करें

    कैटलॉग से आवाज़ चुनें फिर उसका ONNX मॉडल और साथ की JSON कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें। दोनों फ़ाइलें साथ रखें; JSON पथ मॉडल पथ के बाद .json है।

    voice.onnx
    voice.onnx.json
  3. 03

    WAV फ़ाइल बनाएँ

    पहले Piper कैटलॉग से आवाज़ डाउनलोड करें, या नीचे दिया नाम अपनी .onnx फ़ाइल के पथ से बदलें।

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

    फ़ाइल से टेक्स्ट पढ़ें

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

    सीधे आउटपुट में ध्वनि पढ़ें

    नमूना दर आवाज़ पर निर्भर है। voice.onnx.json जाँचें और आवश्यक हो तो 22050 बदलें।

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

    Python से

    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 के साथ

    Piper Wyoming के माध्यम से Home Assistant से जुड़ता है। सेटिंग → डिवाइस व सेवाओं में Piper जोड़ें, फिर Piper TTS एंटिटी के साथ tts.speak क्रिया उपयोग करें।

    Home Assistant में Piper सेट करें ↗

    Node-RED के साथ

    कुछ मार्गदर्शनों में उल्लिखित node-red-contrib-piper-tts पैकेज सार्वजनिक कैटलॉग में पुष्ट नहीं है। एक विकल्प Node-RED के अंतर्निहित Exec नोड से Piper कमांड चलाना है; पथ और अनुमतियाँ अपने सेटअप के अनुसार बदलें।

  7. 07

    आउटपुट समायोजित करें

    गुणवत्ता अन्य बातों के साथ प्रशिक्षण डेटा और चुनी आवाज़ पर निर्भर है। उच्च length-scale वाणी धीमी करता है; निम्न मान उसे तेज़ करता है। noise-scale और noise-w उत्पन्न ध्वनि में भिन्नता बदलते हैं।

    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 से Node.js परियोजना में Piper जोड़ें

pipertts Piper को Node.js में लाता है, फ़ाइल आउटपुट या इन-मेमोरी ऑडियो सहित। अनुशंसित मोड PiperNativeTTS है: प्रक्रिया में 100% नेटिव अनुमान (ONNX + संकलित espeak ब्रिज), बिना Python, wrapper से लगभग 10 गुना तेज़। आवाज़ें (.onnx + .onnx.json) अलग फ़ाइलें रहती हैं।

  1. 01

    निर्भरताएँ स्थापित करें

    प्रलेखन Node.js 18+ और TypeScript 5+ बताता है। नेटिव मोड को और कुछ नहीं चाहिए: साधारण npm install पर्याप्त है। क्लासिक wrapper मोड (python3 -m piper के माध्यम से PiperTTS) हेतु Python और Piper मॉड्यूल भी आवश्यक हैं। कैटलॉग ID से चयन मॉडल व उसकी कॉन्फ़िग models/ में डाउनलोड कर सकता है।

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

    कैटलॉग आवाज़ से त्वरित शुरुआत

    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

    स्थानीय मॉडल उपयोग करें

    हस्तचालित रूप से डाउनलोड की आवाज़ हेतु ONNX फ़ाइल का पथ दें। साथ की .onnx.json फ़ाइल पास में रखें; स्थान भिन्न हो तो configPath निर्दिष्ट कर सकते हैं।

    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 और प्रारूप

    synthesize() audio (Buffer), sampleRate और text लौटाता है; outputFile डिस्क पर भी लिखता है। विकल्प: speakerId (बहु-आवाज़ व बहु-शैली), lengthScale (> 1 धीमा करता है, < 1 तेज़ करता है), noiseScale, noiseWScale, sentenceSilence, normalizeAudio, volume और outputFormat (wav, raw, mp3, ogg या opus)। mp3 व opus में शुद्ध JS विकल्प हैं; ogg हेतु FFmpeg चाहिए। phonemize() व synthesizeChunks() वाक्य-दर-वाक्य निम्न-स्तरीय पहुँच देते हैं।

  5. 05

    लेगेसी wrapper (PiperTTS)

    PiperTTS python3 -m piper चलाता है, प्रति संश्लेषण 1 प्रक्रिया: लगभग 10 गुना धीमा, केवल वहाँ रखें जहाँ नेटिव इंजन न चले। Python व Piper मॉड्यूल आवश्यक हैं।

    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");