Kaggle प्रति सप्ताह 30 घंटे का आधार बताता है, जो माँग और उपलब्ध संसाधनों के अनुसार अधिक हो सकता है। कोटा शनिवार को 00:00 UTC पर रीसेट होता है।
व्यावहारिक मार्गदर्शिका · PIPER TTS
रिकॉर्डिंग से
आवाज़ तक।
वॉइस डेटा तैयार करने और Piper मॉडल प्रशिक्षित करने के आवश्यक चरण। Kaggle की सीमाएँ बदल सकती हैं: लंबे प्रशिक्षण से पहले अपना कोटा जाँच लें।
Piper TTS हेतु LJSpeech डेटासेट बनाएँ
LJSpeech वह मानक प्रारूप है जिसकी Piper अपेक्षा करता है। प्रत्येक वाक्य एक अलग WAV फ़ाइल है, metadata.csv में उसके प्रतिलेख के साथ जुड़ी हुई।
data.zip
├── metadata.csv # nom_du_fichier|transcription
└── wavs/
├── 000001.wav
└── ...- 01
ऑडियो फ़ाइलें एकत्र करें
ऐसी रिकॉर्डिंग उपयोग करें जिन्हें आप संसाधित और पुनर्वितरित कर सकते हैं। स्रोतों में गेम विकी, आपके स्वामित्व वाला मीडिया, या सार्वजनिक डेटासेट हो सकते हैं।
Hugging Face पर LJSpeech डेटासेट खोजें ↗yt-dlp से स्रोत वीडियो डाउनलोड करें - 02
ऑडियो को वाक्यों में बाँटें
प्रति वाक्य 1 WAV फ़ाइल तैयार करें। स्वचालित विभाजन या संरेखण हेतु आप इनका उपयोग कर सकते हैं:
- audiosplitter · स्वचालित विभाजन
- Montreal Forced Aligner (MFA) · बाध्य संरेखण
- faster-whisper + VAD · प्रतिलेखन और टाइमस्टैम्प
- Audacity · कम मात्रा हेतु हस्तचालित विभाजन
- 03
metadata.csv बनाएँ
प्रति फ़ाइल 1 पंक्ति। विभाजक खड़ी रेखा है; नाम wavs/ में स्थित फ़ाइल से बिल्कुल मेल खाना चाहिए।
000001.wav|यह एक उदाहरण वाक्य है। 000002.wav|प्रशिक्षण हेतु यह एक और वाक्य है। - 04
आर्काइव संपीड़ित करें
metadata.csv और wavs/ फ़ोल्डर को आर्काइव की जड़ में रखें।
zip -r data.zip metadata.csv wavs/ - 05
Hugging Face पर अपलोड करें
एक डेटासेट रिपॉज़िटरी बनाएँ, उदाहरण हेतु user/wheatley-english-ljspeech। data.zip और इस कॉन्फ़िगरेशन वाला README.md जोड़ें:
--- configs: - config_name: default data_files: - split: train path: data.zip --- - 06
Piper फ़ोरम में प्रकाशित करें
Hugging Face लिंक और उपयुक्त टैग के साथ डेटासेट व प्रशिक्षण चैनल में नया थ्रेड बनाएँ।
Discord चैनल खोलें ↗
Kaggle पर आवाज़ प्रशिक्षित करें
Kaggle GPU कोटा आपके खाते को देता है और उपलब्धता के अनुसार बदल सकता है। लंबा सत्र शुरू करने से पहले काउंटर जाँच लें।
Kaggle प्रलेखन CPU और GPU सत्रों हेतु निरंतर 12 घंटे की सीमा बताता है। CPU नोटबुक GPU कोटा खर्च नहीं करता, पर उसके सत्र की अवधि फिर भी सीमित रहती है।
Kaggle ने 15 सितंबर 2026 को Tesla P100 हटा दिया। नोटबुक में T4 x2 उपलब्ध है; पुराने P100 मार्गदर्शनों का पालन करने के बजाय Piper प्रशिक्षण हेतु उसे चुनें।
रुकावट के बाद फिर शुरू करें
पूर्ण प्रशिक्षण प्रायः 12 घंटे के एक सत्र से अधिक होता है। इस परियोजना का Piper नोटबुक Hugging Face चेकपॉइंट से फिर शुरू होता है: रुकावट या समाप्त कोटे के बाद उसे दोबारा चलाकर अंतिम सहेजे गए चेकपॉइंट से जारी रखें।
लंबे प्रशिक्षण से पहले
- नोटबुक सेटिंग, अपनी प्रोफ़ाइल या त्वरक उपयोग पृष्ठ में शेष कोटा जाँचें।
- उपयोग न होने पर GPU सत्र बंद करें।
- T4 x2 उपयोग करें; P100 अब Kaggle पर उपलब्ध नहीं है।
Kaggle के कोटे, त्वरक और इंटरफ़ेस बदल सकते हैं। प्रशिक्षण से पहले अपने खाते में दिख रही जानकारी अवश्य जाँचें।
Piper आवाज़ उपयोग करें
Piper स्थापित करें, चुनी हुई आवाज़ की 2 फ़ाइलें लें, फिर स्थानीय रूप से WAV बनाएँ। नीचे दी गई कमांड Open Home Foundation द्वारा अनुरक्षित संस्करण का उपयोग करती हैं।
- 01
Piper स्थापित करें
Piper एक Python पैकेज के रूप में वितरित है। rhasspy/piper रिपॉज़िटरी या उसके बाइनरी आर्काइव का उपयोग करने वाले पुराने मार्गदर्शन ऐतिहासिक संस्करण से जुड़े हैं।
python -m pip install piper-ttspython -m piper.download_voices en_US-lessac-medium - 02
आवाज़ डाउनलोड करें
कैटलॉग से आवाज़ चुनें फिर उसका ONNX मॉडल और साथ की JSON कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें। दोनों फ़ाइलें साथ रखें; JSON पथ मॉडल पथ के बाद .json है।
voice.onnx
voice.onnx.json - 03
WAV फ़ाइल बनाएँ
पहले Piper कैटलॉग से आवाज़ डाउनलोड करें, या नीचे दिया नाम अपनी .onnx फ़ाइल के पथ से बदलें।
python -m piper -m ./voice.onnx -f output.wav -- "Bonjour, ceci est un test." - 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 - 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) - 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 कमांड चलाना है; पथ और अनुमतियाँ अपने सेटअप के अनुसार बदलें।
- 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."
pipertts से Node.js परियोजना में Piper जोड़ें
pipertts Piper को Node.js में लाता है, फ़ाइल आउटपुट या इन-मेमोरी ऑडियो सहित। अनुशंसित मोड PiperNativeTTS है: प्रक्रिया में 100% नेटिव अनुमान (ONNX + संकलित espeak ब्रिज), बिना Python, wrapper से लगभग 10 गुना तेज़। आवाज़ें (.onnx + .onnx.json) अलग फ़ाइलें रहती हैं।
- 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 - 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); - 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 }); - 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() वाक्य-दर-वाक्य निम्न-स्तरीय पहुँच देते हैं।
- 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");
