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

Speech-to-Text API की मदद से डेवलपर, 125 से ज़्यादा भाषाओं और वैरिएंट में उपलब्ध ऑडियो को टेक्स्ट में बदल सकते हैं. इसके लिए, उन्हें इस्तेमाल में आसान एपीआई में मौजूद पावरफ़ुल न्यूरल नेटवर्क मॉडल लागू करने होंगे.
इस ट्यूटोरियल में, Python के साथ Speech-to-Text API का इस्तेमाल करने पर फ़ोकस किया जाएगा.
आपको क्या सीखने को मिलेगा
- अपना एनवायरमेंट सेट अप करने का तरीका
- ऑडियो फ़ाइलों में बोले जा रहे शब्दों को अंग्रेज़ी में टेक्स्ट में बदलने का तरीका
- शब्दों के टाइमस्टैंप के साथ ऑडियो फ़ाइलों को ट्रांसक्राइब करने का तरीका
- ऑडियो फ़ाइलों में बोले गए शब्दों को अलग-अलग भाषाओं में टेक्स्ट में बदलने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
सर्वे
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Python के साथ अपने अनुभव को आप क्या रेटिंग देंगे?
Google Cloud की सेवाओं को कितनी रेटिंग देना चाहेंगे/चाहेंगी?
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते हैं. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी (आम तौर पर
PROJECT_IDके तौर पर पहचाना जाता है) का रेफ़रंस देना होगा. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो आपके पास कोई दूसरा रैंडम आईडी जनरेट करने का विकल्प होता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहता है. - आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको Cloud Console में बिलिंग की सुविधा चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, संसाधनों को शट डाउन करें. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, 300 डॉलर का क्रेडिट मुफ़्त में आज़माने का प्रोग्राम मिलता है.
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Cloud Shell चालू करें
- Cloud Console में, Cloud Shell चालू करें
पर क्लिक करें.

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

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

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद होते हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, Google Cloud में काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में ज़्यादातर काम ब्राउज़र से किया जा सकता है.
Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपने पुष्टि कर ली है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट कर दिया गया है.
- पुष्टि करें कि आपने 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 कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं:
gcloud config list project
कमांड का आउटपुट
[core] project = <PROJECT_ID>
अगर ऐसा नहीं है, तो इस कमांड का इस्तेमाल करके इसे सेट किया जा सकता है:
gcloud config set project <PROJECT_ID>
कमांड का आउटपुट
Updated property [core/project].
3. एनवायरमेंट सेटअप करना
Speech-to-Text API का इस्तेमाल शुरू करने से पहले, Cloud Shell में यह कमांड चलाकर एपीआई को चालू करें:
gcloud services enable speech.googleapis.com
आपको कुछ ऐसा दिखेगा:
Operation "operations/..." finished successfully.
अब Speech-to-Text API का इस्तेमाल किया जा सकता है!
अपनी होम डायरेक्ट्री पर जाएं:
cd ~
डिपेंडेंसी को अलग करने के लिए, Python का वर्चुअल एनवायरमेंट बनाएं:
virtualenv venv-speech
वर्चुअल एनवायरमेंट चालू करें:
source venv-speech/bin/activate
IPython और Speech-to-Text API क्लाइंट लाइब्रेरी इंस्टॉल करें:
pip install ipython google-cloud-speech
आपको कुछ ऐसा दिखेगा:
... Installing collected packages: ..., ipython, google-cloud-speech Successfully installed ... google-cloud-speech-2.25.1 ...
अब, Speech-to-Text API क्लाइंट लाइब्रेरी का इस्तेमाल किया जा सकता है!
अगले चरणों में, आपको IPython नाम के इंटरैक्टिव Python इंटरप्रेटर का इस्तेमाल करना होगा. इसे आपने पिछले चरण में इंस्टॉल किया था. Cloud Shell में ipython चलाकर सेशन शुरू करें:
ipython
आपको कुछ ऐसा दिखेगा:
Python 3.9.2 (default, Feb 28 2021, 17:03:44) Type 'copyright', 'credits' or 'license' for more information IPython 8.18.1 -- An enhanced Interactive Python. Type '?' for help. In [1]:
अब आप पहला अनुरोध कर सकते हैं...
4. ऑडियो फ़ाइलों को टेक्स्ट में बदलना
इस सेक्शन में, आपको अंग्रेज़ी की किसी ऑडियो फ़ाइल को ट्रांसक्राइब करना होगा.
नीचे दिए गए कोड को अपने IPython सेशन में कॉपी करें:
from google.cloud import speech
def speech_to_text(
config: speech.RecognitionConfig,
audio: speech.RecognitionAudio,
) -> speech.RecognizeResponse:
client = speech.SpeechClient()
# Synchronous speech recognition request
response = client.recognize(config=config, audio=audio)
return response
def print_response(response: speech.RecognizeResponse):
for result in response.results:
print_result(result)
def print_result(result: speech.SpeechRecognitionResult):
best_alternative = result.alternatives[0]
print("-" * 80)
print(f"language_code: {result.language_code}")
print(f"transcript: {best_alternative.transcript}")
print(f"confidence: {best_alternative.confidence:.0%}")
कोड को ध्यान से देखें और जानें कि ऑडियो फ़ाइल*.* को ट्रांसक्राइब करने के लिए, recognize क्लाइंट लाइब्रेरी के तरीके का इस्तेमाल कैसे किया जाता है. config पैरामीटर से पता चलता है कि अनुरोध को कैसे प्रोसेस करना है. वहीं, audio पैरामीटर से पता चलता है कि किस ऑडियो डेटा को पहचाना जाना है.
अनुरोध भेजें:
config = speech.RecognitionConfig(
language_code="en",
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/brooklyn_bridge.flac",
)
response = speech_to_text(config, audio)
print_response(response)
आपको यह आउटपुट दिखेगा:
-------------------------------------------------------------------------------- language_code: en-us transcript: how old is the Brooklyn Bridge confidence: 98%
बिना किसी रुकावट के विराम चिह्न लगाने की सुविधा चालू करने के लिए, कॉन्फ़िगरेशन अपडेट करें और नया अनुरोध भेजें:
config.enable_automatic_punctuation = True
response = speech_to_text(config, audio)
print_response(response)
आपको यह आउटपुट दिखेगा:
-------------------------------------------------------------------------------- language_code: en-us transcript: How old is the Brooklyn Bridge? confidence: 98%
खास जानकारी
इस चरण में, अलग-अलग पैरामीटर का इस्तेमाल करके, किसी ऑडियो फ़ाइल को अंग्रेज़ी में ट्रांसक्राइब किया गया और नतीजे को प्रिंट किया गया. ऑडियो फ़ाइलों को टेक्स्ट में बदलने के बारे में ज़्यादा जानें.
5. शब्दों के टाइमस्टैंप पाना
स्पीच-टू-टेक्स्ट, ट्रांसक्राइब किए गए ऑडियो के लिए टाइम ऑफ़सेट (टाइमस्टैंप) का पता लगा सकता है. टाइम ऑफ़सेट से, दिए गए ऑडियो में बोले गए हर शब्द की शुरुआत और खत्म होने का समय पता चलता है. टाइम ऑफ़सेट वैल्यू, ऑडियो की शुरुआत से लेकर अब तक के समय को दिखाती है. यह समय, 100 मिलीसेकंड के हिसाब से बढ़ता है.
शब्दों के टाइमस्टैंप के साथ किसी ऑडियो फ़ाइल को ट्रांसक्राइब करने के लिए, अपने कोड को अपडेट करें. इसके लिए, IPython सेशन में यह कोड कॉपी करें:
def print_result(result: speech.SpeechRecognitionResult):
best_alternative = result.alternatives[0]
print("-" * 80)
print(f"language_code: {result.language_code}")
print(f"transcript: {best_alternative.transcript}")
print(f"confidence: {best_alternative.confidence:.0%}")
print("-" * 80)
for word in best_alternative.words:
start_s = word.start_time.total_seconds()
end_s = word.end_time.total_seconds()
print(f"{start_s:>7.3f} | {end_s:>7.3f} | {word.word}")
कोड को ध्यान से देखें और जानें कि यह शब्दों के टाइमस्टैंप* के साथ ऑडियो फ़ाइल को कैसे ट्रांसक्राइब करता है*.* enable_word_time_offsets पैरामीटर, एपीआई को हर शब्द के लिए टाइम ऑफ़सेट दिखाने का निर्देश देता है. ज़्यादा जानकारी के लिए, दस्तावेज़ देखें.
अनुरोध भेजें:
config = speech.RecognitionConfig(
language_code="en",
enable_automatic_punctuation=True,
enable_word_time_offsets=True,
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/brooklyn_bridge.flac",
)
response = speech_to_text(config, audio)
print_response(response)
आपको यह आउटपुट दिखेगा:
-------------------------------------------------------------------------------- language_code: en-us transcript: How old is the Brooklyn Bridge? confidence: 98% -------------------------------------------------------------------------------- 0.000 | 0.300 | How 0.300 | 0.600 | old 0.600 | 0.800 | is 0.800 | 0.900 | the 0.900 | 1.100 | Brooklyn 1.100 | 1.400 | Bridge?
खास जानकारी
इस चरण में, आपने अंग्रेज़ी में मौजूद किसी ऑडियो फ़ाइल को शब्दों के टाइमस्टैंप के साथ ट्रांसक्राइब किया और नतीजे को प्रिंट किया. शब्दों के टाइमस्टैंप पाने के बारे में ज़्यादा जानें.
6. अलग-अलग भाषाओं में ट्रांसक्राइब करना
Speech-to-Text API, 125 से ज़्यादा भाषाओं और उनके वैरिएंट को पहचानता है! इस सुविधा के लिए उपलब्ध भाषाओं की सूची यहां दी गई है.
इस सेक्शन में, आपको फ़्रेंच भाषा में मौजूद ऑडियो फ़ाइल को ट्रांसक्राइब करना होगा.
फ़्रेंच ऑडियो फ़ाइल को ट्रांसक्राइब करने के लिए, अपने कोड को अपडेट करें. इसके लिए, IPython सेशन में यह कोड कॉपी करें:
config = speech.RecognitionConfig(
language_code="fr-FR",
enable_automatic_punctuation=True,
enable_word_time_offsets=True,
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/corbeau_renard.flac",
)
response = speech_to_text(config, audio)
print_response(response)
आपको यह आउटपुट दिखेगा:
-------------------------------------------------------------------------------- language_code: fr-fr transcript: Maître corbeau sur un arbre perché Tenait dans son bec un fromage maître Renard par l'odeur alléché lui tint à peu près ce langage et bonjour monsieur du corbeau. confidence: 94% -------------------------------------------------------------------------------- 0.000 | 0.700 | Maître 0.700 | 1.100 | corbeau 1.100 | 1.300 | sur 1.300 | 1.600 | un 1.600 | 1.700 | arbre 1.700 | 2.000 | perché 2.000 | 3.000 | Tenait 3.000 | 3.000 | dans 3.000 | 3.200 | son 3.200 | 3.500 | bec 3.500 | 3.700 | un 3.700 | 3.800 | fromage ... 10.800 | 11.800 | monsieur 11.800 | 11.900 | du 11.900 | 12.100 | corbeau.
खास जानकारी
इस चरण में, आपने फ़्रेंच भाषा में मौजूद ऑडियो फ़ाइल को ट्रांसक्राइब किया और नतीजे को प्रिंट किया. Merchant Center में इस्तेमाल की जा सकने वाली भाषाओं के बारे में ज़्यादा जानें.
7. बधाई हो!

आपने Python का इस्तेमाल करके, Speech-to-Text API को ऑडियो फ़ाइलों पर अलग-अलग तरह के ट्रांसक्रिप्शन करने के लिए इस्तेमाल करने का तरीका सीखा!
व्यवस्थित करें
Cloud Shell से डेवलपमेंट एनवायरमेंट को क्लीन अप करने के लिए:
- अगर आप अब भी IPython सेशन में हैं, तो शेल पर वापस जाएं:
exit - Python के वर्चुअल एनवायरमेंट का इस्तेमाल बंद करें:
deactivate - अपना वर्चुअल एनवायरमेंट फ़ोल्डर मिटाएं:
cd ~ ; rm -rf ./venv-speech
Google Cloud प्रोजेक्ट मिटाने के लिए, Cloud Shell में जाकर यह तरीका अपनाएं:
- अपना मौजूदा प्रोजेक्ट आईडी पाएं:
PROJECT_ID=$(gcloud config get-value core/project) - पक्का करें कि आपको यही प्रोजेक्ट मिटाना है:
echo $PROJECT_ID - प्रोजेक्ट मिटाएं:
gcloud projects delete $PROJECT_ID
ज़्यादा जानें
- अपने ब्राउज़र में डेमो आज़माएं: https://cloud.google.com/speech-to-text
- Speech-to-Text से जुड़े दस्तावेज़: https://cloud.google.com/speech-to-text/docs
- Google Cloud पर Python: https://cloud.google.com/python
- Python के लिए Cloud Client Libraries: https://github.com/googleapis/google-cloud-python
लाइसेंस
इस काम के लिए, Creative Commons एट्रिब्यूशन 2.0 जेनेरिक लाइसेंस के तहत लाइसेंस मिला है.