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 में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, बिलिंग से बचने के लिए संसाधनों को बंद करें. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
Cloud Shell शुरू करना
Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Cloud Shell चालू करें
- Cloud Console में, 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`
- Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है:
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
Cloud Shell से अपना Google Cloud प्रोजेक्ट मिटाने के लिए:
- अपना मौजूदा प्रोजेक्ट आईडी वापस पाएं:
PROJECT_ID=$(gcloud config get-value core/project)
- पक्का करें कि यह वही प्रोजेक्ट है जिसे आपको मिटाना है:
echo $PROJECT_ID
- प्रोजेक्ट मिटाएं:
gcloud projects delete $PROJECT_ID
ज़्यादा जानें
- अपने ब्राउज़र में डेमो की जांच करें: https://cloud.google.com/speech-to-text
- बोली को लिखाई में बदलने की सुविधा का दस्तावेज़: https://cloud.google.com/speech-to-text/docs
- Google Cloud पर Python: https://cloud.google.com/python
- Python के लिए Cloud क्लाइंट लाइब्रेरी: https://github.com/googleapis/google-cloud-python
लाइसेंस
इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.