1. खास जानकारी
Google Cloud Speech-to-Text API की मदद से डेवलपर, ऑडियो को 120 भाषाओं और उनके वैरिएंट में टेक्स्ट में बदल सकते हैं. इसके लिए, उन्हें इस्तेमाल में आसान एपीआई में, पावरफ़ुल न्यूरल नेटवर्क मॉडल लागू करने होते हैं.
इस कोडलैब में, C# के साथ Speech-to-Text API का इस्तेमाल करने पर फ़ोकस किया जाएगा. आपको यह पता चलेगा कि ट्रांसक्रिप्शन के लिए, Cloud Speech-to-Text API को अंग्रेज़ी और अन्य भाषाओं में ऑडियो फ़ाइल कैसे भेजी जाती है.
आपको क्या सीखने को मिलेगा
- Cloud Shell का इस्तेमाल कैसे करें
- बोली को लिखाई में बदलने वाले एपीआई को चालू करने का तरीका
- एपीआई अनुरोधों की पुष्टि करने का तरीका
- C# के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका
- ऑडियो फ़ाइलों में बोले जा रहे शब्दों को अंग्रेज़ी में टेक्स्ट में बदलने का तरीका
- शब्दों के टाइमस्टैंप के साथ ऑडियो फ़ाइलों को ट्रांसक्राइब करने का तरीका
- अलग-अलग भाषाओं में ऑडियो फ़ाइलों को टेक्स्ट में बदलने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud Platform प्रोजेक्ट
- कोई ब्राउज़र, जैसे कि Chrome या Firefox
- C# का इस्तेमाल करने की जानकारी
सर्वे
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
C# के साथ अपने अनुभव को आप क्या रेटिंग देंगे?
Google Cloud Platform की सेवाओं को इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?
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 को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google 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 चालू करना
Speech-to-Text API का इस्तेमाल शुरू करने से पहले, आपको इसे चालू करना होगा. Cloud Shell में यह कमांड इस्तेमाल करके, एपीआई को चालू किया जा सकता है:
gcloud services enable speech.googleapis.com
4. C# के लिए Google Cloud Speech-to-Text API की क्लाइंट लाइब्रेरी इंस्टॉल करना
सबसे पहले, एक सामान्य C# कंसोल ऐप्लिकेशन बनाएं. इसका इस्तेमाल, Speech-to-Text API के सैंपल चलाने के लिए किया जाएगा:
dotnet new console -n SpeechToTextApiDemo
आपको बनाया गया ऐप्लिकेशन और हल की गई डिपेंडेंसी दिखनी चाहिए:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
इसके बाद, SpeechToTextApiDemo फ़ोल्डर पर जाएं:
cd SpeechToTextApiDemo/
इसके बाद, प्रोजेक्ट में Google.Cloud.Speech.V1 NuGet पैकेज जोड़ें:
dotnet add package Google.Cloud.Speech.V1
info : Adding PackageReference for package 'Google.Cloud.Speech.V1' into project '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.
log : Restoring packages for /home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Speech.V1' version '1.0.1' added to file '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.
अब, आपके पास Speech-to-Text API का इस्तेमाल करने का विकल्प है!
5. ऑडियो फ़ाइलों को लेख में बदलना
इस सेक्शन में, आपको पहले से रिकॉर्ड की गई ऑडियो फ़ाइल को अंग्रेज़ी में ट्रांसक्राइब करना होगा. ऑडियो फ़ाइल, Google Cloud Storage पर उपलब्ध है.
किसी ऑडियो फ़ाइल को ट्रांसक्राइब करने के लिए, Cloud Shell में सबसे ऊपर दाईं ओर मौजूद कोड एडिटर खोलें:

SpeechToTextApiDemo फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड की जगह यह कोड डालें:
using Google.Cloud.Speech.V1;
using System;
namespace SpeechToTextApiDemo
{
public class Program
{
public static void Main(string[] args)
{
var speech = SpeechClient.Create();
var config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
SampleRateHertz = 16000,
LanguageCode = LanguageCodes.English.UnitedStates
};
var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");
var response = speech.Recognize(config, audio);
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine(alternative.Transcript);
}
}
}
}
}
कोड को समझने के लिए, एक या दो मिनट का समय लें. देखें कि इसका इस्तेमाल ऑडियो फ़ाइल को ट्रांसक्राइब करने के लिए किया जाता है*.*
Encoding पैरामीटर से एपीआई को पता चलता है कि ऑडियो फ़ाइल के लिए, किस तरह की ऑडियो एन्कोडिंग का इस्तेमाल किया जा रहा है. Flac, .raw फ़ाइलों के लिए एन्कोडिंग टाइप है. एन्कोडिंग टाइप के बारे में ज़्यादा जानकारी के लिए, दस्तावेज़ देखें.
RecognitionAudio ऑब्जेक्ट में, एपीआई को Cloud Storage में मौजूद हमारी ऑडियो फ़ाइल का यूआरआई या ऑडियो फ़ाइल का लोकल फ़ाइल पाथ पास किया जा सकता है. यहां, हम Cloud Storage यूआरआई का इस्तेमाल कर रहे हैं.
Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:
dotnet run
आपको यह आउटपुट दिखेगा:
how old is the Brooklyn Bridge
खास जानकारी
इस चरण में, आपने अंग्रेज़ी में ऑडियो फ़ाइल को ट्रांसक्राइब किया और नतीजे को प्रिंट किया. ट्रांसक्राइब करने की सुविधा के बारे में ज़्यादा जानें.
6. शब्दों के टाइमस्टैंप के साथ ट्रांसक्राइब करना
बोले गए शब्दों को टेक्स्ट में बदलने की सुविधा, ट्रांसक्रिप्ट किए गए ऑडियो के लिए टाइम ऑफ़सेट (टाइमस्टैंप) का पता लगा सकती है. टाइम ऑफ़सेट से, दिए गए ऑडियो में बोले गए हर शब्द की शुरुआत और खत्म होने का समय पता चलता है. टाइम ऑफ़सेट वैल्यू से पता चलता है कि ऑडियो शुरू होने के बाद से कितना समय बीत चुका है. यह वैल्यू, 100 मिलीसेकंड के हिसाब से बढ़ती है.
टाइम ऑफ़सेट के साथ किसी ऑडियो फ़ाइल को ट्रांसक्राइब करने के लिए, Program.cs फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड को इससे बदलें:SpeechToTextApiDemo
using Google.Cloud.Speech.V1;
using System;
namespace SpeechToTextApiDemo
{
public class Program
{
public static void Main(string[] args)
{
var speech = SpeechClient.Create();
var config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
SampleRateHertz = 16000,
LanguageCode = LanguageCodes.English.UnitedStates,
EnableWordTimeOffsets = true
};
var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");
var response = speech.Recognize(config, audio);
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine($"Transcript: { alternative.Transcript}");
Console.WriteLine("Word details:");
Console.WriteLine($" Word count:{alternative.Words.Count}");
foreach (var item in alternative.Words)
{
Console.WriteLine($" {item.Word}");
Console.WriteLine($" WordStartTime: {item.StartTime}");
Console.WriteLine($" WordEndTime: {item.EndTime}");
}
}
}
}
}
}
कोड को समझने के लिए, एक या दो मिनट का समय लें. देखें कि इसका इस्तेमाल, किसी ऑडियो फ़ाइल में बोले गए शब्दों को टेक्स्ट में बदलने के लिए किया जाता है. साथ ही, इसमें शब्दों के टाइमस्टैंप* भी शामिल होते हैं.* EnableWordTimeOffsets पैरामीटर, एपीआई को टाइम ऑफ़सेट चालू करने के लिए कहता है. ज़्यादा जानकारी के लिए, दस्तावेज़ देखें.
Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:
dotnet run
आपको यह आउटपुट दिखेगा:
dotnet run
Transcript: how old is the Brooklyn Bridge
Word details:
Word count:6
how
WordStartTime: "0s"
WordEndTime: "0.300s"
old
WordStartTime: "0.300s"
WordEndTime: "0.600s"
is
WordStartTime: "0.600s"
WordEndTime: "0.800s"
the
WordStartTime: "0.800s"
WordEndTime: "0.900s"
Brooklyn
WordStartTime: "0.900s"
WordEndTime: "1.100s"
Bridge
WordStartTime: "1.100s"
WordEndTime: "1.500s"
खास जानकारी
इस चरण में, आपने अंग्रेज़ी में मौजूद किसी ऑडियो फ़ाइल को शब्दों के टाइमस्टैंप के साथ ट्रांसक्राइब किया और नतीजे का प्रिंट आउट लिया. शब्दों के ऑफ़सेट के साथ ट्रांसक्राइब करने के बारे में ज़्यादा जानें.
7. अलग-अलग भाषाओं में बोले गए शब्दों को लेख में बदलना
Speech-to-Text API, 100 से ज़्यादा भाषाओं में ऑडियो को टेक्स्ट में बदलने की सुविधा देता है! इस सुविधा के लिए उपलब्ध भाषाओं की सूची यहां दी गई है.
इस सेक्शन में, आपको पहले से रिकॉर्ड की गई ऑडियो फ़ाइल को फ़्रेंच में ट्रांसक्राइब करना होगा. ऑडियो फ़ाइल, Google Cloud Storage पर उपलब्ध है.
फ़्रेंच ऑडियो फ़ाइल को ट्रांसक्राइब करने के लिए, SpeechToTextApiDemo फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड को इससे बदलें:
using Google.Cloud.Speech.V1;
using System;
namespace SpeechToTextApiDemo
{
public class Program
{
public static void Main(string[] args)
{
var speech = SpeechClient.Create();
var config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
LanguageCode = LanguageCodes.French.France
};
var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-data/speech/corbeau_renard.flac");
var response = speech.Recognize(config, audio);
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine(alternative.Transcript);
}
}
}
}
}
कोड को समझने के लिए एक या दो मिनट का समय लें. देखें कि इसका इस्तेमाल ऑडियो फ़ाइल* को ट्रांसक्राइब करने के लिए कैसे किया जाता है*.* LanguageCode पैरामीटर से API को पता चलता है कि ऑडियो रिकॉर्डिंग किस भाषा में है.
Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:
dotnet run
आपको यह आउटपुट दिखेगा:
maître corbeau sur un arbre perché tenait en son bec un fromage
यह बच्चों की एक मशहूर फ़्रेंच कहानी का वाक्य है.
खास जानकारी
इस चरण में, आपने फ़्रेंच भाषा में ऑडियो फ़ाइल को ट्रांसक्राइब किया और नतीजे को प्रिंट किया. Merchant Center के लिए उपलब्ध भाषाओं के बारे में ज़्यादा जानें.
8. बधाई हो!
आपने ऑडियो फ़ाइलों को ट्रांसक्राइब करने के लिए, C# का इस्तेमाल करके Speech-to-Text API का इस्तेमाल करने का तरीका सीखा!
व्यवस्थित करें
इस क्विकस्टार्ट में इस्तेमाल की गई संसाधनों के लिए, अपने Google Cloud Platform खाते से शुल्क न लिए जाने के लिए:
- Cloud Platform Console पर जाएं.
- वह प्रोजेक्ट चुनें जिसे बंद करना है. इसके बाद, सबसे ऊपर मौजूद ‘मिटाएं' पर क्लिक करें: इससे प्रोजेक्ट को मिटाने के लिए शेड्यूल कर दिया जाता है.
ज़्यादा जानें
- Google Cloud Speech-to-Text API: https://cloud.google.com/speech-to-text/docs
- Google Cloud Platform पर C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET क्लाइंट: https://googlecloudplatform.github.io/google-cloud-dotnet/
लाइसेंस
इस काम के लिए, Creative Commons एट्रिब्यूशन 2.0 जेनेरिक लाइसेंस के तहत लाइसेंस मिला है.