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

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

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

इस कोडलैब में, Node.js के साथ Text-to-Speech API का इस्तेमाल करने पर फ़ोकस किया जाएगा. आपको उपलब्ध आवाज़ों की सूची बनाने और टेक्स्ट से ऑडियो बनाने का तरीका पता चलेगा.

आपको क्या सीखने को मिलेगा

  • 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 के नए उपयोगकर्ता, मुफ़्त में आज़माने के लिए 300 डॉलर के प्रोग्राम में शामिल हो सकते हैं.

Cloud Shell शुरू करें

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

Cloud Shell चालू करें

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

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFI4IRF0W7WZk6hFqZDUGXQQXrw21GuMm2ecHrbzQ

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

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

Cloud Shell से कनेक्ट होने में कुछ ही सेकंड लगेंगे.

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7yR1NseZKJvcxAZrPb8wRxoqyTpD-gbhA

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है और 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. Text-to-Speech API चालू करना

Text-to-Speech API का इस्तेमाल शुरू करने से पहले, आपको इसे चालू करना होगा. Cloud Shell में यह कमांड इस्तेमाल करके, एपीआई को चालू किया जा सकता है:

gcloud services enable texttospeech.googleapis.com

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

Text-to-Speech API से अनुरोध करने के लिए, आपको सेवा खाता इस्तेमाल करना होगा. सेवा खाता आपके प्रोजेक्ट से जुड़ा होता है. इसका इस्तेमाल Google Client 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 एनवायरमेंट वैरिएबल सेट करें. इसका इस्तेमाल Text-to-Speech API की Node.js लाइब्रेरी करती है. इसके बारे में अगले चरण में बताया गया है. इससे आपकी क्रेडेंशियल का पता चलता है. एनवायरमेंट वैरिएबल को, क्रेडेंशियल की उस JSON फ़ाइल के पूरे पाथ पर सेट किया जाना चाहिए जिसे आपने बनाया है. इसके लिए, यह तरीका अपनाएं:

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

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

सबसे पहले, एक ऐसा प्रोजेक्ट बनाएं जिसका इस्तेमाल इस 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 डेवलपमेंट को सेट अप करने के बारे में ज़्यादा निर्देशों के लिए, कृपया सेटअप गाइड देखें.

अब, आपके पास Text-to-Speech API का इस्तेमाल करने का विकल्प है!

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. टेक्स्ट से ऑडियो जनरेट करना

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

में मौजूद 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 का इस्तेमाल करके, Text-to-Speech API को ऑडियो फ़ाइलों पर अलग-अलग तरह के ट्रांसक्रिप्शन करने के लिए इस्तेमाल करने का तरीका सीखा!

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

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

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

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

लाइसेंस

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