亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GCP 語音轉文本 - Java API 不工作

GCP 語音轉文本 - Java API 不工作

桃花長相依 2023-06-04 17:35:20
我在 Chrome 瀏覽器中使用 MediaRecorder 錄制了一個示例 .webm 文件。當我使用 Google 語音 java 客戶端獲取視頻的轉錄時,它返回空轉錄。這是我的代碼的樣子SpeechSettings settings = null;Path path = Paths.get("D:\\scrap\\gcp_test.webm");byte[] content = null;try {    content = Files.readAllBytes(path);    settings = SpeechSettings.newBuilder().setCredentialsProvider(credentialsProvider).build();} catch (IOException e1) {    throw new IllegalStateException(e1);}try (SpeechClient speech = SpeechClient.create(settings)) {    // Builds the request for remote FLAC file    RecognitionConfig config = RecognitionConfig.newBuilder()                    .setEncoding(AudioEncoding.LINEAR16)                    .setLanguageCode("en-US")                    .setUseEnhanced(true)                    .setModel("video")                    .setEnableAutomaticPunctuation(true)                    .setSampleRateHertz(48000)                    .build();    RecognitionAudio audio = RecognitionAudio.newBuilder().setContent(ByteString.copyFrom(content)).build();    // RecognitionAudio audio = RecognitionAudio.newBuilder().setUri("gs://xxxx/gcp_test.webm") .build();    // Use blocking call for getting audio transcript    RecognizeResponse response = speech.recognize(config, audio);    List<SpeechRecognitionResult> results = response.getResultsList();    for (SpeechRecognitionResult result : results) {        SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);        System.out.printf("Transcription: %s%n", alternative.getTranscript());    }} catch (Exception e) {    e.printStackTrace();    System.err.println(e.getMessage());}如果,我使用相同的文件并訪問https://cloud.google.com/speech-to-text/并在演示部分上傳文件。它似乎工作正常并顯示轉錄。我對這里出了什么問題一無所知。我驗證了演示發送的請求,這里看起來像我發送了一組準確的參數,但沒有用。嘗試將文件上傳到云存儲,但也給出了相同的結果(沒有轉錄)。
查看完整描述

2 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

經過錯誤和試驗(并查看 javascript 示例)后,我可以解決問題。音頻的序列化版本應為 FLAC 格式。我將視頻文件 (webm) 按原樣發送到 Google Cloud。該站點上的演示使用 Javascript Audio API 提取音頻流,然后以 base64 格式發送數據以使其工作。

以下是我為獲取輸出而執行的步驟。

  1. 使用 FFMPEG 從 webm 中提取音頻流為 FLAC 格式。

    ffmpeg -i sample.webm -vn -acodec flac sample.flac

  2. 提取的文件應使用存儲云提供或作為 ByteString 發送。

  3. 在調用語音 API 時設置適當的模型(英語語言video模型有效,法語模型有效command_and_search)。我對此沒有任何合乎邏輯的理由。我在谷歌云站點上的演示中反復試驗后意識到了這一點。


查看完整回答
反對 回復 2023-06-04
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

我得到了 flac 編碼文件的結果。


示例代碼結果帶有時間戳的單詞,


public class SpeechToTextSample {


public static void main(String... args) throws Exception {


?try (SpeechClient speechClient = SpeechClient.create()) {


? ?String gcsUriFlac = "gs://yourfile.flac";


? ?RecognitionConfig config =

? ? ? ?RecognitionConfig.newBuilder()

? ? ? ? ? ?.setEncoding(AudioEncoding.FLAC)??

? ? ? ? ? ?.setEnableWordTimeOffsets(true)

? ? ? ? ? ?.setLanguageCode("en-US")

? ? ? ? ? ?.build();


? ?RecognitionAudio audio = RecognitionAudio.newBuilder().setUri(gcsUriFlac).build(); //for large files

? ?OperationFuture<LongRunningRecognizeResponse, LongRunningRecognizeMetadata> response = speechClient.longRunningRecognizeAsync(config, audio);

? ?while (!response.isDone()) {

? ? ? ? ? System.out.println("Waiting for response...");

? ? ? ? ? Thread.sleep(1000);

? ? ? ? }

? ?// Performs speech recognition on the audio file


? ?List<SpeechRecognitionResult> results = response.get().getResultsList();


? ?for (SpeechRecognitionResult result : results) {

? ? ? SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);

? ? ?System.out.printf("Transcription: %s%n", alternative.getTranscript());

? ? ?for (WordInfo wordInfo : alternative.getWordsList()) {

? ? ? ? ?System.out.println(wordInfo.getWord());

? ? ? ? ?System.out.printf(

? ? ? ? ? ? ?"\t%s.%s sec - %s.%s sec\n",

? ? ? ? ? ? ?wordInfo.getStartTime().getSeconds(),

? ? ? ? ? ? ?wordInfo.getStartTime().getNanos() / 100000000,

? ? ? ? ? ? ?wordInfo.getEndTime().getSeconds(),

? ? ? ? ? ? ?wordInfo.getEndTime().getNanos() / 100000000);

? ? ? ?}

? ?}

?}

}

}

GCP 支持不同的語言,我在示例中使用了“en-US”。



查看完整回答
反對 回復 2023-06-04
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號