Tworzenie transkrypcji wsadowej

W przypadku transkrypcji wsadowych dane audio są przesyłane w partii. Usługa transkrybuje dane audio i przechowuje wyniki w kontenerze magazynu. Następnie możesz pobrać wyniki z kontenera magazynu.

Ważne

Nowe ceny obowiązują w przypadku transkrypcji wsadowej przy użyciu mowy na tekst interfejsu API REST w wersji 3.2. Aby uzyskać więcej informacji, zobacz przewodnik po cenach.

Wymagania wstępne

Tworzenie zadania transkrypcji

Aby utworzyć transkrypcję, użyj operacji Transcriptions_Create interfejsu API REST zamiany mowy na tekst. Skonstruuj treść żądania zgodnie z następującymi instrukcjami:

  • Musisz ustawić contentContainerUrl właściwość lub contentUrls . Aby uzyskać więcej informacji na temat usługi Azure Blob Storage na potrzeby transkrypcji wsadowej, zobacz Lokalizowanie plików audio na potrzeby transkrypcji wsadowej.
  • Ustaw wymaganą locale właściwość. Ta wartość powinna być zgodna z oczekiwaną wartością ustawień regionalnych danych audio do transkrypcji. Nie można później zmienić ustawień regionalnych.
  • Ustaw wymaganą displayName właściwość. Wybierz nazwę transkrypcji, do której możesz się odwołać później. Nazwa transkrypcji nie musi być unikatowa i można jej później zmienić.
  • Opcjonalnie, aby użyć modelu innego niż model podstawowy, ustaw model właściwość na identyfikator modelu. Aby uzyskać więcej informacji, zobacz Używanie modelu niestandardowego i Używanie modelu szeptu.
  • Opcjonalnie ustaw wordLevelTimestampsEnabled właściwość na wartość , aby true włączyć znaczniki czasu na poziomie wyrazu w wynikach transkrypcji. Domyślna wartość to false. W obszarze Modele szeptu displayFormWordLevelTimestampsEnabled ustaw właściwość . Szept jest modelem tylko do wyświetlania, więc pole leksykalne nie jest wypełniane w transkrypcji.
  • Opcjonalnie ustaw languageIdentification właściwość . Identyfikacja języka służy do identyfikowania języków mówionych w dźwiękach w porównaniu z listą obsługiwanych języków. Jeśli ustawisz languageIdentification właściwość, musisz również ustawić languageIdentification.candidateLocales ustawienia regionalne kandydata.

Aby uzyskać więcej informacji, zobacz Request configuration options (Opcje konfiguracji żądania).

Utwórz żądanie HTTP POST, które używa identyfikatora URI, jak pokazano w poniższym przykładzie Transcriptions_Create .

  • Zastąp YourSubscriptionKey ciąg kluczem zasobu usługi Mowa.
  • Zastąp YourServiceRegion element regionem zasobu usługi Mowa.
  • Ustaw właściwości treści żądania zgodnie z wcześniejszym opisem.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
    "https://crbn.us/hello.wav",
    "https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": null,
  "properties": {
    "wordLevelTimestampsEnabled": true,
    "languageIdentification": {
      "candidateLocales": [
        "en-US", "de-DE", "es-ES"
      ],
    }
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions"

Treść odpowiedzi powinna zostać wyświetlona w następującym formacie:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/db474955-ab85-4c6c-ba6e-3bfe63d041ba",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/db474955-ab85-4c6c-ba6e-3bfe63d041ba/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": true,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "languageIdentification": {
      "candidateLocales": [
        "en-US",
        "de-DE",
        "es-ES"
      ]
    }
  },
  "lastActionDateTime": "2022-10-21T14:18:06Z",
  "status": "NotStarted",
  "createdDateTime": "2022-10-21T14:18:06Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

Właściwość najwyższego poziomu self w treści odpowiedzi to identyfikator URI transkrypcji. Użyj tego identyfikatora URI, aby uzyskać szczegółowe informacje, takie jak identyfikator URI plików raportów transkrypcji i transkrypcji. Ten identyfikator URI służy również do aktualizowania lub usuwania transkrypcji.

Stan transkrypcji można wykonać za pomocą operacji Transcriptions_Get .

Po pobraniu wyników należy regularnie wywoływać Transcriptions_Delete z usługi. Alternatywnie ustaw timeToLive właściwość , aby upewnić się, że ostateczne usunięcie wyników.

Aby utworzyć transkrypcję, użyj spx batch transcription create polecenia . Skonstruuj parametry żądania zgodnie z następującymi instrukcjami:

  • Ustaw wymagany content parametr. Można określić rozdzielaną średnikami listę pojedynczych plików lub adres URL dla całego kontenera. Aby uzyskać więcej informacji na temat usługi Azure Blob Storage na potrzeby transkrypcji wsadowej, zobacz Lokalizowanie plików audio na potrzeby transkrypcji wsadowej.
  • Ustaw wymaganą language właściwość. Ta wartość powinna być zgodna z oczekiwaną wartością ustawień regionalnych danych audio do transkrypcji. Nie można później zmienić ustawień regionalnych. Parametr interfejsu locale wiersza polecenia language usługi Mowa odpowiada właściwości w żądaniu i odpowiedzi w formacie JSON.
  • Ustaw wymaganą name właściwość. Wybierz nazwę transkrypcji, do której możesz się odwołać później. Nazwa transkrypcji nie musi być unikatowa i można jej później zmienić. Parametr interfejsu displayName wiersza polecenia name usługi Mowa odpowiada właściwości w żądaniu i odpowiedzi w formacie JSON.

Oto przykładowe polecenie interfejsu wiersza polecenia usługi Mowa, które tworzy zadanie transkrypcji:

spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav;https://crbn.us/whatstheweatherlike.wav

Treść odpowiedzi powinna zostać wyświetlona w następującym formacie:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked"
  },
  "lastActionDateTime": "2022-10-21T14:21:59Z",
  "status": "NotStarted",
  "createdDateTime": "2022-10-21T14:21:59Z",
  "locale": "en-US",
  "displayName": "My Transcription",
  "description": ""
}

Właściwość najwyższego poziomu self w treści odpowiedzi to identyfikator URI transkrypcji. Użyj tego identyfikatora URI, aby uzyskać szczegółowe informacje, takie jak identyfikator URI plików raportów transkrypcji i transkrypcji. Ten identyfikator URI służy również do aktualizowania lub usuwania transkrypcji.

Aby uzyskać pomoc dotyczącą interfejsu wiersza polecenia usługi Mowa w transkrypcjach, uruchom następujące polecenie:

spx help batch transcription

Opcje konfiguracji żądania

Poniżej przedstawiono niektóre opcje właściwości, których można użyć do skonfigurowania transkrypcji podczas wywoływania operacji Transcriptions_Create .

Właściwości opis
channels Tablica numerów kanałów do przetworzenia. Kanały 0 i 1 są domyślnie transkrypowane.
contentContainerUrl Możesz przesłać pojedyncze pliki audio lub cały kontener magazynu.

Należy określić lokalizację danych audio przy użyciu contentContainerUrl właściwości lub contentUrls . Aby uzyskać więcej informacji na temat usługi Azure Blob Storage na potrzeby transkrypcji wsadowej, zobacz Lokalizowanie plików audio na potrzeby transkrypcji wsadowej.

Ta właściwość nie jest zwracana w odpowiedzi.
contentUrls Możesz przesłać pojedyncze pliki audio lub cały kontener magazynu.

Należy określić lokalizację danych audio przy użyciu contentContainerUrl właściwości lub contentUrls . Aby uzyskać więcej informacji, zobacz Lokalizowanie plików audio na potrzeby transkrypcji wsadowej.

Ta właściwość nie jest zwracana w odpowiedzi.
destinationContainerUrl Wynik można przechowywać w kontenerze platformy Azure. Jeśli nie określisz kontenera, usługa Mowa przechowuje wyniki w kontenerze zarządzanym przez firmę Microsoft. Po usunięciu zadania transkrypcji dane wynikowe transkrypcji również zostaną usunięte. Aby uzyskać więcej informacji, takich jak obsługiwane scenariusze zabezpieczeń, zobacz Określanie docelowego adresu URL kontenera.
diarization Wskazuje, że usługa rozpoznawania mowy powinna podjąć próbę analizy diaryzacji danych wejściowych, która powinna być kanałem mono zawierającym wiele głosów. Funkcja nie jest dostępna w przypadku nagrań stereo.

Diarization to proces oddzielania głośników w danych audio. Potok wsadowy może rozpoznawać i oddzielać wiele głośników na nagraniach kanałów mono.

Określ minimalną i maksymalną liczbę osób, które mogą mówić. Należy również ustawić diarizationEnabled właściwość na true. Plik transkrypcji zawiera speaker wpis dla każdej transkrypcji frazy.

Należy użyć tej właściwości, jeśli oczekujesz co najmniej trzech głośników. W przypadku dwóch głośników wystarczy ustawienie diarizationEnabled właściwości true na wartość . Aby zapoznać się z przykładem użycia właściwości, zobacz Transcriptions_Create.

Maksymalna liczba głośników do diaryzacji musi być mniejsza niż 36 i większa lub równa minSpeakers właściwości. Aby zapoznać się z przykładem, zobacz Transcriptions_Create.

Po wybraniu tej właściwości długość dźwięku źródłowego nie może przekraczać 240 minut na plik.

Uwaga: ta właściwość jest dostępna tylko w przypadku interfejsu API REST zamiany mowy na tekst w wersji 3.1 lub nowszej. Jeśli ustawisz tę właściwość z dowolną poprzednią wersją, na przykład w wersji 3.0, zostanie ona zignorowana i zostaną zidentyfikowane tylko dwa głośniki.
diarizationEnabled Określa, że usługa rozpoznawania mowy powinna podjąć próbę analizy diaryzacji danych wejściowych, która powinna być kanałem mono zawierającym dwa głosy. Domyślna wartość to false.

W przypadku co najmniej trzech głosów należy również użyć właściwości diarization. Używaj tylko z rozpoznawaniem mowy do tekstu interfejsu API REST w wersji 3.1 lub nowszej.

Po wybraniu tej właściwości długość dźwięku źródłowego nie może przekraczać 240 minut na plik.
displayName Nazwa transkrypcji wsadowej. Wybierz nazwę, do której możesz się odwołać później. Nazwa wyświetlana nie musi być unikatowa.

Ta właściwość jest wymagana.
displayFormWordLevelTimestampsEnabled Określa, czy należy uwzględnić znaczniki czasu na poziomie wyrazów w formie wyświetlanej wyników transkrypcji. Wyniki są zwracane we displayWords właściwości pliku transkrypcji. Domyślna wartość to false.

Uwaga: ta właściwość jest dostępna tylko w przypadku interfejsu API REST zamiany mowy na tekst w wersji 3.1 lub nowszej.
languageIdentification Identyfikacja języka służy do identyfikowania języków mówionych w dźwiękach w porównaniu z listą obsługiwanych języków.

Jeśli ustawisz languageIdentification właściwość , musisz również ustawić jej właściwość ujętą candidateLocales .
languageIdentification.candidateLocales Ustawienia regionalne kandydata do identyfikacji języka, takie jak "properties": { "languageIdentification": { "candidateLocales": ["en-US", "de-DE", "es-ES"]}}. Obsługiwane są co najmniej dwa i maksymalnie dziesięć ustawień regionalnych kandydatów, w tym główne ustawienia regionalne dla transkrypcji.
locale Ustawienia regionalne transkrypcji wsadowej. Ta wartość powinna być zgodna z oczekiwaną wartością ustawień regionalnych danych audio do transkrypcji. Nie można później zmienić ustawień regionalnych.

Ta właściwość jest wymagana.
model Właściwość można ustawić model tak, aby korzystała z określonego modelu podstawowego lub niestandardowego modelu mowy . Jeśli nie określisz modelwartości , zostanie użyty domyślny model podstawowy ustawień regionalnych. Aby uzyskać więcej informacji, zobacz Używanie modelu niestandardowego i Używanie modelu szeptu.
profanityFilterMode Określa sposób obsługi wulgaryzmów w wynikach rozpoznawania. Akceptowane wartości to None wyłączenie filtrowania wulgaryzmów, Masked zastępowanie wulgaryzmów gwiazdkami, Removed usuwanie wszystkich wulgaryzmów z wyniku lub Tags dodawanie tagów wulgaryzmów. Domyślna wartość to Masked.
punctuationMode Określa sposób obsługi interpunkcji w wynikach rozpoznawania. Akceptowane wartości to None wyłączenie interpunkcji, Dictated oznaczanie jawnej (mówionej) interpunkcji, Automatic umożliwianie dekoderowi radzenia sobie z interpunkcją lub DictatedAndAutomatic używanie dyktowanych i automatycznych interpunkcji. Domyślna wartość to DictatedAndAutomatic.

Ta właściwość nie ma zastosowania w przypadku modeli Szeptu.
timeToLive Czas trwania po utworzeniu zadania transkrypcji, gdy wyniki transkrypcji zostaną automatycznie usunięte. Wartość jest czasem trwania zakodowanym w formacie ISO 8601. Na przykład określ PT12H wartość dla 12 godzin. Alternatywnie możesz wywołać Transcriptions_Delete regularnie po pobraniu wyników transkrypcji.
wordLevelTimestampsEnabled Określa, czy znaczniki czasu na poziomie wyrazu powinny być uwzględnione w danych wyjściowych. Domyślna wartość to false.

Ta właściwość nie ma zastosowania w przypadku modeli Szeptu. Szept jest modelem tylko do wyświetlania, więc pole leksykalne nie jest wypełniane w transkrypcji.

Aby uzyskać pomoc dotyczącą interfejsu wiersza polecenia usługi Mowa z opcjami konfiguracji transkrypcji, uruchom następujące polecenie:

spx help batch transcription create advanced

Korzystanie z modelu niestandardowego

Transkrypcja wsadowa używa domyślnego modelu podstawowego dla ustawień regionalnych, które określisz. Nie musisz ustawiać żadnych właściwości, aby używać domyślnego modelu podstawowego.

Opcjonalnie możesz zmodyfikować poprzedni przykład tworzenia transkrypcji, ustawiając model właściwość tak, aby korzystała z określonego modelu podstawowego lub niestandardowego modelu mowy .

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
    "https://crbn.us/hello.wav",
    "https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions"
spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav;https://crbn.us/whatstheweatherlike.wav --model "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"

Aby użyć niestandardowego modelu mowy do transkrypcji wsadowej, potrzebny jest identyfikator URI modelu. Właściwość najwyższego poziomu self w treści odpowiedzi to identyfikator URI modelu. Lokalizację modelu można pobrać podczas tworzenia lub pobierania modelu. Aby uzyskać więcej informacji, zobacz przykład odpowiedzi JSON w temacie Tworzenie modelu.

Napiwek

Hostowany punkt końcowy wdrożenia nie jest wymagany do używania mowy niestandardowej z usługą transkrypcji wsadowej. Zasoby można oszczędzać, jeśli używasz niestandardowego modelu mowy tylko do transkrypcji wsadowej.

Żądania transkrypcji wsadowej dla wygasłych modeli kończą się niepowodzeniem z powodu błędu 4xx. model Ustaw właściwość na model podstawowy lub niestandardowy, który nie wygasł. W przeciwnym razie nie uwzględniaj model właściwości, aby zawsze używać najnowszego modelu podstawowego. Aby uzyskać więcej informacji, zobacz Wybieranie modelu i cyklu życia niestandardowego modelu mowy.

Korzystanie z modelu szeptu

Usługa Azure AI Speech obsługuje model Szept interfejsu OpenAI przy użyciu interfejsu API transkrypcji wsadowej. Możesz użyć modelu Whisper do transkrypcji wsadowej.

Uwaga

Usługa Azure OpenAI Service obsługuje również model szeptu OpenAI na potrzeby zamiany mowy na tekst przy użyciu synchronicznego interfejsu API REST. Aby dowiedzieć się więcej, zobacz Zamiana mowy na tekst za pomocą modelu szeptu Platformy Azure OpenAI. Aby uzyskać więcej informacji o tym, kiedy używać usługi Azure AI Speech a Azure OpenAI Service, zobacz Co to jest model szeptu?

Aby użyć modelu Szeptu do transkrypcji wsadowej, należy ustawić model właściwość . Szept jest modelem tylko do wyświetlania, więc pole leksykalne nie jest wypełniane w odpowiedzi.

Ważne

W przypadku modeli Szeptu należy zawsze używać wersji 3.2 mowy do interfejsu API tekstu.

Modele szeptów według transkrypcji wsadowej są obsługiwane w regionach Australia Wschodnia, Środkowe stany USA, Wschodnie stany USA, Północno-środkowe stany USA, Południowo-środkowe stany USA, Azja Południowo-Wschodnia i Europa Zachodnia.

Możesz wysłać żądanie Models_ListBaseModels , aby uzyskać dostępne modele podstawowe dla wszystkich ustawień regionalnych.

Utwórz żądanie HTTP GET, jak pokazano w poniższym przykładzie eastus dla regionu. Zastąp YourSubscriptionKey ciąg kluczem zasobu usługi Mowa. Zastąp wartość eastus , jeśli używasz innego regionu.

curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Domyślnie zwracane są tylko 100 najstarszych modeli podstawowych. skip Użyj parametrów zapytania itop, aby stronicować wyniki. Na przykład następujące żądanie zwraca kolejne 100 modeli podstawowych po pierwszym 100.

curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base?skip=100&top=100" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Upewnij się, że zmienne konfiguracji zasobu usługi Mowa są ustawiane w jednym z obsługiwanych regionów. Możesz uruchomić polecenie , spx csr list --base aby uzyskać dostępne modele podstawowe dla wszystkich ustawień regionalnych.

spx csr list --base --api-version v3.2-preview.2

Właściwość displayName modelu Whisper zawiera wartość "Whisper", jak pokazano w tym przykładzie. Szept jest modelem tylko do wyświetlania, więc pole leksykalne nie jest wypełniane w transkrypcji.

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950",
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950/manifest"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2025-04-15T00:00:00Z",
      "transcriptionDateTime": "2026-04-15T00:00:00Z"
    },
    "features": {
      "supportsTranscriptions": true,
      "supportsEndpoints": false,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportsAdaptationsWith": [
        "Acoustic"
      ],
      "supportedOutputFormats": [
        "Display"
      ]
    },
    "chargeForAdaptation": true
  },
  "lastActionDateTime": "2024-02-29T15:53:28Z",
  "status": "Succeeded",
  "createdDateTime": "2024-02-29T15:46:07Z",
  "locale": "en-US",
  "displayName": "20240228 Whisper Large V2",
  "description": "OpenAI Whisper Model in Azure AI Speech (Whisper v2-large)"
},

Ustawiasz pełny identyfikator URI modelu, jak pokazano w tym przykładzie eastus dla regionu. Zastąp YourSubscriptionKey ciąg kluczem zasobu usługi Mowa. Zastąp wartość eastus , jeśli używasz innego regionu.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
    "https://crbn.us/hello.wav",
    "https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base/d9cbeee6-582b-47ad-b5c1-6226583c92b6"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
  },
}'  "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/transcriptions"
spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav;https://crbn.us/whatstheweatherlike.wav --model "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base/d9cbeee6-582b-47ad-b5c1-6226583c92b6" --api-version v3.2-preview.2

Określanie docelowego adresu URL kontenera

Wynik transkrypcji można przechowywać w kontenerze platformy Azure. Jeśli nie określisz kontenera, usługa Mowa przechowuje wyniki w kontenerze zarządzanym przez firmę Microsoft. W takim przypadku po usunięciu zadania transkrypcji dane wynikowe transkrypcji również zostaną usunięte.

Wyniki transkrypcji wsadowej można przechowywać w zapisywalnym kontenerze usługi Azure Blob Storage przy użyciu opcji destinationContainerUrl w żądaniu tworzenia transkrypcji wsadowej. Ta opcja używa tylko identyfikatora URI sygnatury dostępu współdzielonego ad hoc i nie obsługuje mechanizmu zabezpieczeń zaufanych usług platformy Azure. Ta opcja nie obsługuje również sygnatury dostępu współdzielonego opartej na zasadach dostępu. Zasób konta magazynu kontenera docelowego musi zezwalać na cały ruch zewnętrzny.

Jeśli chcesz przechowywać wyniki transkrypcji w kontenerze usługi Azure Blob Storage przy użyciu mechanizmu zabezpieczeń zaufanych usług platformy Azure, rozważ użycie rozwiązania Bring-your-own-storage (BYOS). Aby uzyskać więcej informacji, zobacz Use the Bring your own storage (BYOS) Speech resource for speech to text (Use the Bring your own storage (BYOS) Speech resource for speech to text (Używanie zasobu usługi Mowa byOS).