Node.js के साथ लिखाई को बोली में बदलने वाले एपीआई का इस्तेमाल करना

1. खास जानकारी

Google Cloud Text-to-Speech API की मदद से डेवलपर, अपने ऐप्लिकेशन में आम बोलचाल की भाषा में इस्तेमाल की गई और एआई की मदद से की गई इंसानों की बोली को, ऑडियो के तौर पर शामिल कर सकते हैं. Text-to-Speech API, टेक्स्ट या स्पीच सिंथेसिस मार्कअप लैंग्वेज (एसएसएमएल) इनपुट को MP3 या LINEAR16 (WAV फ़ाइलों में इस्तेमाल की जाने वाली एन्कोडिंग) जैसे ऑडियो डेटा में बदलता है.

इस कोडलैब में, Node.js के साथ लिखाई को बोली में बदलने की सुविधा के एपीआई के इस्तेमाल पर ध्यान दिया जाएगा. इस लेख में, उपलब्ध आवाज़ों की सूची बनाने और टेक्स्ट को ऑडियो में शामिल करने का तरीका भी बताया गया है.

आपको इनके बारे में जानकारी मिलेगी

  • Cloud Shell का इस्तेमाल कैसे करें
  • लिखाई को बोली में बदलने वाले एपीआई को चालू करने का तरीका
  • एपीआई अनुरोधों की पुष्टि करने का तरीका
  • Node.js के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका
  • उपलब्ध आवाज़ों की सूची कैसे बनाएं
  • टेक्स्ट से ऑडियो सिंथेसाइज़ करने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud Platform प्रोजेक्ट
  • ब्राउज़र, जैसे कि Chrome या Firefox
  • Node.js का इस्तेमाल करना

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

आप Node.js के साथ अपने अनुभव को क्या रेटिंग देंगे/देंगी?

शुरुआती इंटरमीडिएट कुशल

Google Cloud Platform की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.

इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJANnQF0iBuUyfp1RzVad_4nCa0zLUDZLGFGFl पर क्लिक करें.

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFI4IRF0W7WZk6hFqZDUGXQQXrw21GuMm2ecHrbzQ

अगर आपने Cloud Shell का इस्तेमाल पहले कभी नहीं किया है, तो आपको इसके बारे में जानकारी देने वाली एक इंटरमीडिएट स्क्रीन (पेज के फ़ोल्ड के नीचे) दिखेगी. अगर ऐसा है, तो जारी रखें पर क्लिक करें (यह आपको फिर कभी नहीं दिखेगा). एक बार इस्तेमाल होने वाली स्क्रीन कुछ इस तरह दिखती है:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoewT1SUjd6Y3h81RG3rKIkqhoVlFR-G7w

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7yR1NseZKJvcxAZrPb8wRxoqyTpD-gbhA

इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम बस किसी ब्राउज़र या आपके Chromebook से किया जा सकता है.

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है.

  1. यह पुष्टि करने के लिए Cloud Shell में नीचे दिया गया कमांड चलाएं कि आपकी पुष्टि हो गई है:
gcloud auth list

कमांड आउटपुट

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:

gcloud config set project <PROJECT_ID>

कमांड आउटपुट

Updated property [core/project].

3. लिखाई को बोली में बदलने की सुविधा का एपीआई चालू करें

लिखाई को बोली में बदलने वाले एपीआई का इस्तेमाल शुरू करने से पहले, आपको इस एपीआई को चालू करना होगा. Cloud Shell में इस कमांड का इस्तेमाल करके, एपीआई को चालू किया जा सकता है:

gcloud services enable texttospeech.googleapis.com

4. एपीआई अनुरोधों की पुष्टि करें

Text-to-Speech API को अनुरोध भेजने के लिए, आपको किसी सेवा खाते का इस्तेमाल करना होगा. सेवा खाता आपके प्रोजेक्ट से जुड़ा होता है. Google क्लाइंट Node.js लाइब्रेरी इसका इस्तेमाल, Text-to-Speech API के अनुरोध करने के लिए करती है. किसी भी दूसरे उपयोगकर्ता खाते की तरह, सेवा खाते को ईमेल पते के तौर पर दिखाया जाता है. इस सेक्शन में, आपको सेवा खाता बनाने के लिए Cloud SDK टूल का इस्तेमाल करना होगा. इसके बाद, ऐसे क्रेडेंशियल बनाने होंगे जिनकी पुष्टि, सेवा खाते के तौर पर करनी होगी.

सबसे पहले, अपने GOOGLE_CLOUD_PROJECT के साथ एक एनवायरमेंट वैरिएबल सेट करें, जिसका इस्तेमाल आपको इस कोडलैब के दौरान करना है:

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)

इसके बाद, Text-to-Speech API को ऐक्सेस करने के लिए नया सेवा खाता बनाएं. इसके लिए, इनका इस्तेमाल करें:

gcloud iam service-accounts create my-text-to-speech-sa \
  --display-name "my text-to-speech codelab service account"

इसके बाद, वे क्रेडेंशियल बनाएं जिनका इस्तेमाल आपका Node.js कोड आपके नए सेवा खाते के तौर पर लॉगिन करने के लिए करेगा. ये क्रेडेंशियल बनाएं और इन्हें JSON फ़ाइल "~/key.json" के तौर पर सेव करें इसके लिए, इनमें से कोई विकल्प चुना जा सकता है:

gcloud iam service-accounts keys create ~/key.json \
  --iam-account  my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com

आखिर में, GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल सेट करें, जिसका इस्तेमाल टेक्स्ट-टू-स्पीच एपीआई Node.js लाइब्रेरी से अपने क्रेडेंशियल ढूंढने के लिए किया जाता है. इस वैरिएबल के बारे में अगले चरण में बताया गया है. एनवायरमेंट वैरिएबल को आपकी बनाई गई क्रेडेंशियल JSON फ़ाइल के पूरे पाथ पर सेट किया जाना चाहिए. इसके लिए, इनका इस्तेमाल करें:

export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"

5. Node.js के लिए Google Cloud Text-to-Speech API की क्लाइंट लाइब्रेरी इंस्टॉल करें

सबसे पहले, एक ऐसा प्रोजेक्ट बनाएं जिसका इस्तेमाल लिखाई को बोली में बदलने वाले इस एपीआई लैब को चलाने के लिए करना है. इसके बाद, अपनी पसंद के फ़ोल्डर में नया Node.js पैकेज शुरू करें:

npm init

NPM, प्रोजेक्ट के कॉन्फ़िगरेशन के बारे में कई सवाल पूछता है. जैसे, नाम और वर्शन. हर सवाल के लिए, ENTER दबाकर डिफ़ॉल्ट वैल्यू स्वीकार करें. डिफ़ॉल्ट एंट्री पॉइंट, index.js नाम की फ़ाइल होती है.

इसके बाद, प्रोजेक्ट में Google Cloud Speech लाइब्रेरी इंस्टॉल करें:

npm install --save @google-cloud/text-to-speech

Google Cloud के लिए Node.js डेवलपमेंट सेट अप करने के तरीके के बारे में ज़्यादा जानकारी के लिए, कृपया सेटअप गाइड देखें.

अब आप लिखाई को बोली में बदलने वाले एपीआई का इस्तेमाल करने के लिए तैयार हैं!

6. उपलब्ध आवाज़ों की सूची बनाएं

इस सेक्शन में, ऑडियो सिंथेसिस के लिए सभी उपलब्ध आवाज़ों की सूची अंग्रेज़ी में दी जाएगी.

इसके अंदर index.js फ़ाइल पर जाएं और कोड को इनसे बदलें:

'use strict';

/**
 * Lists available voices for the specified language.
 *
 * @param {string} languageCode - The language code.
 */
async function listVoices(languageCode) {
  const textToSpeech = require('@google-cloud/text-to-speech');

  const client = new textToSpeech.TextToSpeechClient();

  const [result] = await client.listVoices({languageCode});
  const voices = result.voices;

  voices.forEach((voice) => {
    console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
  });
}

listVoices('en');

एक या दो मिनट निकालकर कोड को अच्छे से समझ लें. ऐप्लिकेशन चलाएं:

node . 

आपको यह आउटपुट दिखेगा:

en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...

7. टेक्स्ट से ऑडियो को सिंथेसाइज़ करें

किसी स्ट्रिंग को ऑडियो डेटा में बदलने के लिए, लिखाई को बोली में बदलने वाले एपीआई का इस्तेमाल किया जा सकता है. स्पीच सिंथेसिस के आउटपुट को कई तरीकों से कॉन्फ़िगर किया जा सकता है. इनमें यूनीक आवाज़ चुनना या पिच, आवाज़, बोलने की दर, और सैंपल रेट में आउटपुट में बदलाव करना शामिल है.

इसके अंदर index.js फ़ाइल पर जाएं और यह कोड जोड़ें:

/**
 * Sythesizes sample text into an .mp3 file.
 */
async function synthesize() {
  const textToSpeech = require('@google-cloud/text-to-speech');
  const fs = require('fs');
  const util = require('util');

  const client = new textToSpeech.TextToSpeechClient();

  const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';

  const request = {
    input: {text: text},
    voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
    audioConfig: {audioEncoding: 'MP3'},
  };

  const [response] = await client.synthesizeSpeech(request);
  // Write the binary audio content to a local file
  const writeFile = util.promisify(fs.writeFile);
  await writeFile('output.mp3', response.audioContent, 'binary');
  console.log('Audio content written to file: output.mp3');
}

synthesize();

थोड़ा समय निकालकर कोड को पढ़ें और देखें कि इसका इस्तेमाल करके टेक्स्ट से ऑडियो फ़ाइल कैसे बनाई जाती है.

node .

आपको यह आउटपुट दिखेगा:

Audio content written to file "output.mp3"

8. बधाई हो!

आपने सीखा कि ऑडियो फ़ाइलों पर अलग-अलग तरह का ट्रांसक्रिप्शन करने के लिए, Node.js का इस्तेमाल करके लिखाई को बोली में बदलने वाले एपीआई का इस्तेमाल कैसे करते हैं!

व्यवस्थित करें

इस क्विकस्टार्ट में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud Platform खाते पर लगने वाले शुल्क से बचने के लिए:

  • Cloud Platform कंसोल पर जाएं.
  • वह प्रोजेक्ट चुनें जिसे शट डाउन करना है. इसके बाद, ‘मिटाएं' पर क्लिक करें सबसे ऊपर: यह प्रोजेक्ट को मिटाने के लिए शेड्यूल करता है.

ज़्यादा जानें

लाइसेंस

इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.