Transkrypcja mowy na tekst dzięki interfejsowi Cloud Speech-to-Text API

Cloud Speech API umożliwia zamianę mowy na tekst z plików audio w ponad 80 językach.

W tym module nagramy plik audio i wyślemy go do interfejsu Cloud Speech API do transkrypcji.

Czego się nauczysz

  • Tworzenie żądania do interfejsu Speech API i wywoływanie go za pomocą narzędzia curl
  • Wywołanie interfejsu Speech API z plikami audio w różnych językach

Czego potrzebujesz

  • Projekt Google Cloud Platform
  • Przeglądarka, na przykład Chrome lub Firefox.

Jak będziesz korzystać z tego samouczka?

Przeczytaj tylko Przeczytaj i wykonaj ćwiczenia

Jak oceniasz korzystanie z Google Cloud Platform?

Początkujący Średnio zaawansowany Zaawansowany

Konfiguracja środowiska we własnym tempie

Jeśli nie masz jeszcze konta Google (Gmail lub Google Apps), musisz je utworzyć. Zaloguj się w konsoli Google Cloud Platform (console.cloud.google.com) i utwórz nowy projekt:

Zrzut ekranu z 10 września 2016 r., 12:45:26.png

Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa została już użyta i nie będzie działać). W ćwiczeniach nazywamy je później PROJECT_ID.

Aby móc używać zasobów Google Cloud, musisz najpierw włączyć płatności w Cloud Console.

Ćwiczenia z programowania nie powinny kosztować więcej niż kilka dolarów, ale mogą być większe, jeśli zdecydujesz się wykorzystać więcej zasobów lub pozostawisz to uruchomione (zobacz sekcję „Czyszczenie” na końcu tego dokumentu).

Nowi użytkownicy Google Cloud Platform mogą skorzystać z bezpłatnej wersji próbnej o wartości 300 USD.

Kliknij ikonę menu w lewym górnym rogu ekranu.

W menu wybierz panel Interfejsy API i usługi.

Kliknij Włącz interfejsy API i usługi.

Następnie w polu wyszukiwania wpisz "Speech". Kliknij Google Cloud Speech API:

Kliknij Włącz, aby włączyć interfejs Cloud Speech API:

Zaczekaj kilka sekund, aż funkcja zostanie włączona. Po włączeniu tej funkcji zobaczysz to:

Google Cloud Shell to środowisko wiersza poleceń działające w chmurze. Ta maszyna wirtualna oparta na Debianie jest wyposażona we wszystkie potrzebne narzędzia dla programistów (gcloud, bq, git i inne) i oferuje trwały katalog domowy o pojemności 5 GB. Wykorzystamy Cloud Shell do utworzenia żądania do interfejsu Speech API.

Aby rozpocząć korzystanie z Cloud Shell, kliknij ikonę „Aktywuj” w Google Cloud Shell" Zrzut ekranu 2015-06-08 o 17:30.32 PM.pngw prawym górnym rogu paska nagłówka

Sesja Cloud Shell otworzy się w nowej ramce u dołu konsoli, zostanie również wyświetlony monit wiersza poleceń. Poczekaj na wyświetlenie monitu użytkownik@projekt:~$

Ponieważ do wysyłania żądań do interfejsu Speech API będziemy używać curl, musimy wygenerować klucz interfejsu API, aby przekazać nasz adres URL żądania. Aby utworzyć klucz interfejsu API, otwórz w panelu projektu sekcję Interfejsy API i usługi; Dane logowania.

Następnie kliknij Utwórz dane logowania:

Z menu wybierz Klucz interfejsu API:

Następnie skopiuj wygenerowany klucz i kliknij Zamknij (nie ograniczaj go).

Po utworzeniu klucza interfejsu API zapisz go w środowisku środowiskowym, aby nie trzeba było wstawiać wartości klucza interfejsu API w każdym żądaniu. Możesz to zrobić w Cloud Shell. Pamiętaj, aby zastąpić fragment <your_api_key> przed chwilą skopiowanym kluczem.

export API_KEY=<YOUR_API_KEY>

Żądanie do interfejsu Speech API możesz utworzyć w pliku request.json. Aby utworzyć i edytować ten plik, możesz użyć jednego z wybranych edytorów wiersza poleceń (nano, vim, emacs) lub wbudowanego edytora internetowego w Cloud Shell:

Utwórz plik w katalogu głównym, aby móc łatwo do niego odwołać i dodać do pliku request.json te elementy :

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

Treść żądania zawiera obiekt config i audio. W config informujemy Speech API o tym, jak ma przetworzyć żądanie. Parametr encoding informuje interfejs API, jakiego typu kodowania audio używasz w przypadku przesłanego pliku audio. FLAC to typ kodowania plików .raw (więcej informacji znajdziesz w dokumentacji). Możesz dodać do obiektu config inne parametry, ale parametr encoding jest jedynym wymaganym. W prośbie o pominięcie prośby languageCode domyślnie ustawi język angielski.

W obiekcie audio możesz przekazać interfejs API nasz identyfikator URI pliku audio w Cloud Storage lub dźwięk zakodowany w formacie base64 w postaci ciągu znaków. Użyto adresów URL z Cloud Storage. Następnym krokiem jest wywołanie interfejsu Speech API.

Teraz możesz przekazać treść żądania wraz ze zmienną środowiskową klucza interfejsu API zapisaną wcześniej do interfejsu Speech API za pomocą tego polecenia curl (w jednym wierszu poleceń):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

Odpowiedź zwrócona za pomocą tego polecenia curl powinna wyglądać mniej więcej tak:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

Wartość transcript zwróci transkrypcję tekstu Twojego pliku audio z interfejsem Speech API, a wartość confidence będzie wskazywać, że interfejs API prawidłowo zapisał dźwięk.

Jak widzimy, w powyższym żądaniu nazwaliśmy metodę recognize metodą. Interfejs Speech API obsługuje zarówno synchroniczną, jak i asynchroniczną transkrypcję związaną z zamianą mowy na tekst. W tym przykładzie wysłaliśmy Ci pełny plik audio, ale możesz też użyć metody longrunningrecognize, aby odtwarzać strumieniowo transkrypcję mowy do tekstu, gdy użytkownik wciąż mówi.

Czy posługujesz się kilkoma językami? Interfejs Speech API obsługuje transkrypcję mowy w ponad 100 językach. Parametr languageCode możesz zmienić w polu request.json. Listę obsługiwanych języków znajdziesz tutaj.

Wypróbuj francuski plik audio (zapoznaj się z nim tutaj, jeśli chcesz zobaczyć podgląd). Zmień plik request.json na taki:

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Powinna pojawić się ta odpowiedź:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

To zdanie z popularnej francuskiej baśni dziecięcej. Jeśli masz pliki audio w innym języku, możesz dodać je do Cloud Storage i zmienić parametr languageCode w żądaniu.

Wiesz już, jak tworzyć transkrypcję mowy za pomocą interfejsu Speech API. W tym przykładzie interfejs API otrzymał identyfikator URI Google Cloud Storage Twojego pliku audio. Możesz też przekazać tekst zakodowany w standardzie base64.

Omawiane zagadnienia

  • Przekazywanie interfejsu Speech API do identyfikatora URI pliku audio Google Cloud Storage
  • Tworzenie żądania do interfejsu Speech API i wywoływanie go za pomocą narzędzia curl
  • Wywołanie interfejsu Speech API z plikami audio w różnych językach

Dalsze kroki