Google Cloud Speech API 調用注意事項及調用方式

來源:CSDN
作者:FeiJrry
時間:2020-08-27
4907
現(xiàn)階段,語音自動識別功能已趨于完善,對與大部分用戶來說,能說能聽足矣!在說聽的同時還能看,豈不美哉?對此,Google提供了語音轉為文字的應用——Cloud Speech API。本文將從使用該API的前提條件,注意事項,在.net開發(fā)環(huán)境下實現(xiàn)從本地讀取音頻文件解析為文字,從Google Cloud Storage中讀取音頻文件解析文字,以及上傳本地音頻文件到Google Cloud Storage。

引言

現(xiàn)階段,語音自動識別功能已趨于完善,對與大部分用戶來說,能說能聽足矣!在說聽的同時還能看,豈不美哉?對此,Google提供了語音轉為文字的應用——Cloud Speech API。本文將從使用該API的前提條件,注意事項,在.net開發(fā)環(huán)境下實現(xiàn)從本地讀取音頻文件解析為文字,從Google Cloud Storage中讀取音頻文件解析文字,以及上傳本地音頻文件到Google Cloud Storage。

調用API前提條件

一.既然是用Google的API,在內地你首先保證能(fq)訪問Google官網(wǎng),具體操作此處就省略操作關于翻墻軟件,代理服務的文字。

二.注冊Google帳號,登錄Google Cloud Platform,創(chuàng)建項目,在API管理器中添加項目憑據(jù)。憑據(jù)1為服務賬號密匙,OAuth客戶端ID。其具體操作見文檔–Google Cloud Speech API調用注意事項,里面有詳細操作步驟及步驟截圖。因該API為付費產(chǎn)品,需在創(chuàng)建項目后對其付費,Google推出免費60天使用及300刀的贈金,對與初次研究者來說就是注冊Google云平臺的事罷了。

三.滿足上面兩條件,基本可以保證對一定規(guī)則的音頻文件調用Cloud Speech API后轉換成文字。對與音頻文件的要求如下:

1.音頻的編碼格式:1聲道,PCM;

2.采樣頻率:16000HZ;

3.讀取本地的音頻文件播放時長小于60s,讀取云存儲中的音頻文件播放時長小于80min。

以上條件是最基本的,對于其它詳細內容請訪問該地址。

四.在VS2015中使用該接口,首先需要安裝并引用如下DLL到項目中:

ia_12600000032.jpg

獲取以上DLL方式:

1.通過在項目引用中點擊Nuget程序包中搜尋Dll名字進行下載安裝,

ia_12600000033.jpg

ia_12600000034.jpg

2.通過Nuget的程序包管理器控制平臺輸入命令進行安裝。

命令有Install-Package Google.Apis;Install-Package Google.Apis.Core;Install-Package Google.Apis.CloudSpeechAPI.v1beta1等。

如果安裝或下載均不方便,可以從這里獲取一系列DLL。完成以上步驟后,接下來就用代碼展示該API的魅力吧。

讀取本地音頻文件轉換為文字

注:如下Demo是windows應用程序,所有方法都為static

1.創(chuàng)建類型為CloudSpeechAPIService的方法,目的是通過環(huán)境變量獲取Google的憑證,連接在云平臺建立的項目。PS:如果此方法出現(xiàn)異常,請查看前提條件二。

 static public CloudSpeechAPIService CreateAuthorizedClient()

        {

            GoogleCredential credential =GoogleCredential.GetApplicationDefaultAsync().Result;//讀取環(huán)境變量中的GOOGLE_APPLICATION_CREDENTIALS


            if (credential.IsCreateScopedRequired)

            {

                credential = credential.CreateScoped(new[]

                {

                    CloudSpeechAPIService.Scope.CloudPlatform

                });//獲取認證

            }

            return new CloudSpeechAPIService(new BaseClientService.Initializer()

            {

                HttpClientInitializer = credential,

                ApplicationName = "DotNet Google Cloud Platform Speech Sample",

            });

        }

2.讀取本地音頻文件,調用Cloud Speech API進行文字轉換。ps:音頻文件格式最好為1聲道PCM,播放長度小于60s,否則不易獲取正確轉換結果。


 static public void Main(string[] args)

        {

            var service = CreateAuthorizedClient();//獲取云服務認證

            string audio_file_path = "本地文件路徑";

          //配置參數(shù)

            var request = new Google.Apis.CloudSpeechAPI.v1beta1.Data.SyncRecognizeRequest()

            {

                Config = new Google.Apis.CloudSpeechAPI.v1beta1.Data.RecognitionConfig()

                {

                   Encoding = "LINEAR16",//編碼格式

                   SampleRate = 16000,//采樣頻率

                   LanguageCode =  "en-US"//英文播放內容

               //LanguageCode = "cmn-Hans-CN"中文播放內容

                },

                Audio = new Google.Apis.CloudSpeechAPI.v1beta1.Data.RecognitionAudio()

                {

                    Content = Convert.ToBase64String(File.ReadAllBytes(audio_file_path))//讀取文件轉換為Base64字符串

                }

            };

            // 配置完成

            // 調用GloudSpeechAPI進行請求

            StringBuilder sb = new StringBuilder();

           Console.WriteLine("Starte Time :" + startTime);

            try

            {

                var asyncResponse = service.Speech.Asyncrecognize(request).Execute();

                var name = asyncResponse.Name;

                Google.Apis.CloudSpeechAPI.v1beta1.Data.Operation op;

                do

                {

                    Console.WriteLine("Waiting for server processing...");

                    Thread.Sleep(1000);

                    op = service.Operations.Get(name).Execute();

                    if (op.Error?.Message != null)

                    {

                       Console.WriteLine(op.Error.Message);

                    }

                } while (!(op.Done.HasValue && op.Done.Value));

                dynamic results = op.Response["results"];

                foreach (var result in results)

                {

                    foreach (var alternative in result.alternatives)

                    {

                        sb.Append(alternative.transcript);//將轉換結果放入StringBuilder中

                    }

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

            }

            DateTime endTime = DateTime.Now;

            var timeTaken = endTime - startTime;

            sb.Append("\r\nEnd Time:" + endTime + "\t" + "Time-taken:" + (timeTaken));

            Console.WriteLine( sb.ToString());

            Console.ReadKey();

            // 結束請求

        }

通過如上方法,就可以獲取到音頻文件播放內容。

ia_12600000037.jpg

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:CSDN
版權說明:本文內容來自于CSDN,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關文章
新版GKE可管理最多6.5萬集群節(jié)點,超越AWS、Azure 10倍
新版GKE可管理最多6.5萬集群節(jié)點,超越AWS、Azure 10倍
Google Cloud公布最新Google Kubernetes Engine版本,號稱可支持最高達65,000個節(jié)點的服務器集群,以執(zhí)行超大型AI模型。
Google Cloud
云服務
云計算
2024-11-15
Google Cloud細說AI變現(xiàn)途徑:用戶一年暴增10倍
Google Cloud細說AI變現(xiàn)途徑:用戶一年暴增10倍
Google云計算平臺(Google Cloud)首席執(zhí)行官Thomas Kurian在高盛舉行的會議上,說明了該公司究竟是通過哪些途徑將AI變現(xiàn)。
Google Cloud
谷歌云
云計算
2024-09-13
云計算平臺GCP的服務存在權限提升漏洞,未經(jīng)授權的攻擊者可借此訪問敏感數(shù)據(jù)
云計算平臺GCP的服務存在權限提升漏洞,未經(jīng)授權的攻擊者可借此訪問敏感數(shù)據(jù)
7月24日安全企業(yè)Tenable披露影響Google Cloud Platform(GCP)的權限提升漏洞ConfusedFunction,這項弱點發(fā)生在名為Cloud Functions的無服務器運算服務,以及稱作Cloud Build的CICD渠道服務。
Google Cloud
谷歌云
云計算
2024-07-27
Gemini為核心,Google云計算AI戰(zhàn)略聚焦云服務和生產(chǎn)力GAI
Gemini為核心,Google云計算AI戰(zhàn)略聚焦云服務和生產(chǎn)力GAI
過去一年,企業(yè)GAI應用的風潮席卷全球,成了三大公有云積極搶攻的新戰(zhàn)場,微軟靠著OpenAI助攻,去年在這場云計算GAI大戰(zhàn)中取得先機,而Google后來居上,靠著自家PaLM模型和GAI生產(chǎn)力工具來迎戰(zhàn),AWS則是到去年底年會上,對于企業(yè)GAI應用布局才有比較完整的布局與披露。
Google Cloud
谷歌云
云計算
2024-05-04
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家