C# के साथ Speech-to-Text API का इस्तेमाल करें

C# के साथ Speech-to-Text API का इस्तेमाल करें

इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी

subjectपिछली बार जून 26, 2023 को अपडेट किया गया
account_circleMete Atamel ने लिखा

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. सेटअप और ज़रूरी शर्तें

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

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

295004821बाबा6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

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

Cloud Shell शुरू करना

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

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें d1264ca30785e435.png पर क्लिक करें.

cb81e7c8e34bc8d.png

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

d95252b003979716.png

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

7833d5e1c5d18f54.png

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

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`
  1. 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

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 पर उपलब्ध है.

किसी ऑडियो फ़ाइल को टेक्स्ट में बदलने के लिए, क्लाउड शेल पर सबसे ऊपर दाईं ओर मौजूद कोड एडिटर खोलें:

fd3fc1303e63572.png

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 पैरामीटर से एपीआई को यह पता चलता है कि आपकी ऑडियो फ़ाइल के लिए, किस तरह की ऑडियो एन्कोडिंग का इस्तेमाल किया जा रहा है. .raw फ़ाइलों के लिए, Flac को कोड में बदलने का तरीका इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, कोड में बदलने के तरीके के बारे में जानने के लिए दस्तावेज़ देखें.

RecognitionAudio ऑब्जेक्ट में, Cloud Storage में मौजूद हमारी ऑडियो फ़ाइल के यूआरआई या ऑडियो फ़ाइल के लोकल फ़ाइल पाथ में से, एपीआई को पास किया जा सकता है. यहां हम Cloud Storage यूआरआई का इस्तेमाल कर रहे हैं.

Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:

dotnet run

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

how old is the Brooklyn Bridge

खास जानकारी

इस चरण में, ऑडियो फ़ाइल को अंग्रेज़ी में ट्रांसक्राइब किया गया और नतीजे को प्रिंट किया गया. बोली को लेख में बदलने की सुविधा के बारे में ज़्यादा पढ़ें.

6. शब्द के टाइमस्टैंप की मदद से बोले जा रहे शब्दों को टेक्स्ट में बदलें

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

टाइम ऑफ़सेट की मदद से ऑडियो फ़ाइल को टेक्स्ट में बदलने के लिए, 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,
               
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 पैरामीटर से एपीआई को यह पता चलता है कि ऑडियो रिकॉर्डिंग किस भाषा में है.

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 कंसोल पर जाएं.
  • वह प्रोजेक्ट चुनें जिसे शट डाउन करना है. इसके बाद, ‘मिटाएं' पर क्लिक करें सबसे ऊपर: यह प्रोजेक्ट को मिटाने के लिए शेड्यूल करता है.

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

लाइसेंस

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