Rövid útmutató: Beszéd felismerése és fordítása szöveggé
Referenciadokumentáció-csomag (NuGet) | További minták a GitHubon |
Ebben a rövid útmutatóban egy alkalmazást futtat, amely lefordítja a beszédet egy nyelvről egy másik nyelven lévő szövegre.
Tipp.
Az Azure AI Speech Toolkittel egyszerűen készíthet és futtathat mintákat a Visual Studio Code-on.
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Speech-erőforrás létrehozása az Azure Portalon.
- Kérje le a Speech erőforráskulcsát és régióját. A Speech-erőforrás üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
A környezet beállítása
A Speech SDK NuGet-csomagként érhető el, és a .NET Standard 2.0-t implementálja. Az útmutató későbbi részében telepítheti a Speech SDK-t, de először ellenőrizze az SDK telepítési útmutatóját a további követelményekkel kapcsolatban.
Környezeti változók beállítása
Az Azure AI-szolgáltatások eléréséhez hitelesítenie kell az alkalmazást. Ez a cikk bemutatja, hogyan tárolhatja a hitelesítő adatait környezeti változókkal. Ezután hozzáférhet a környezeti változókhoz a kódból az alkalmazás hitelesítéséhez. Éles környezetben biztonságosabban tárolhatja és érheti el a hitelesítő adatait.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
A Speech-erőforráskulcs és -régió környezeti változóinak beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
SPEECH_KEY
környezeti változó beállításához cserélje le a kulcsot az erőforrás egyik kulcsára. - A
SPEECH_REGION
környezeti változó beállításához cserélje le a régiót az erőforrás egyik régiójára.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Feljegyzés
Ha csak az aktuális konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set
ahelyett setx
állíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változók olvasásához szükséges programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Beszéd fordítása mikrofonból
Az alábbi lépéseket követve hozzon létre egy új konzolalkalmazást, és telepítse a Speech SDK-t.
Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy konzolalkalmazást a .NET CLI-vel. A
Program.cs
fájlt a projektkönyvtárban kell létrehozni.dotnet new console
Telepítse a Speech SDK-t az új projektbe a .NET CLI-vel.
dotnet add package Microsoft.CognitiveServices.Speech
Cserélje le a tartalomra
Program.cs
a következő kódot.using System; using System.IO; using System.Threading.Tasks; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; using Microsoft.CognitiveServices.Speech.Translation; class Program { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY"); static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION"); static void OutputSpeechRecognitionResult(TranslationRecognitionResult translationRecognitionResult) { switch (translationRecognitionResult.Reason) { case ResultReason.TranslatedSpeech: Console.WriteLine($"RECOGNIZED: Text={translationRecognitionResult.Text}"); foreach (var element in translationRecognitionResult.Translations) { Console.WriteLine($"TRANSLATED into '{element.Key}': {element.Value}"); } break; case ResultReason.NoMatch: Console.WriteLine($"NOMATCH: Speech could not be recognized."); break; case ResultReason.Canceled: var cancellation = CancellationDetails.FromResult(translationRecognitionResult); Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); if (cancellation.Reason == CancellationReason.Error) { Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}"); Console.WriteLine($"CANCELED: Did you set the speech resource key and region values?"); } break; } } async static Task Main(string[] args) { var speechTranslationConfig = SpeechTranslationConfig.FromSubscription(speechKey, speechRegion); speechTranslationConfig.SpeechRecognitionLanguage = "en-US"; speechTranslationConfig.AddTargetLanguage("it"); using var audioConfig = AudioConfig.FromDefaultMicrophoneInput(); using var translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig); Console.WriteLine("Speak into your microphone."); var translationRecognitionResult = await translationRecognizer.RecognizeOnceAsync(); OutputSpeechRecognitionResult(translationRecognitionResult); } }
A beszédfelismerés nyelvének módosításához cserélje le
en-US
egy másik támogatott nyelvre. Adja meg a teljes területi beállításokat egy kötőjel (-
) elválasztójellel. Például aes-ES
spanyol (Spanyolország) esetében. Az alapértelmezett nyelv azen-US
, ha nem ad meg nyelvet. A több beszélt nyelv egyikének azonosításáról további információt a nyelvazonosítás című témakörben talál.A fordítási célnyelv módosításához cserélje le
it
egy másik támogatott nyelvre. Néhány kivételtől eltekintve csak a területi kötőjel (-
) elválasztójelet megelőző nyelvi kódot adja meg. Használja példáules
spanyol (Spanyolország) helyettes-ES
. Az alapértelmezett nyelv azen
, ha nem ad meg nyelvet.
Az új konzolalkalmazás futtatásával indítsa el a beszédfelismerést egy mikrofonból:
dotnet run
Amikor a rendszer kéri, beszéljen a mikrofonba. A kimondott szövegnek lefordított szövegként kell megjelennie a célnyelven:
Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale.
Megjegyzések
Most, hogy elvégezte a rövid útmutatót, íme néhány további szempont:
- Ez a példa a
RecognizeOnceAsync
művelettel legfeljebb 30 másodperces beszédelemeket ír át, vagy amíg a rendszer nem észleli a csendet. További információ a hosszabb hang folyamatos felismeréséről, beleértve a többnyelvű beszélgetéseket is, olvassa el a beszéd fordítása című témakört. - A hangfájlból származó beszéd felismeréséhez használja
FromWavFileInput
a következőFromDefaultMicrophoneInput
helyett:using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
- Tömörített hangfájlok, például MP4 esetén telepítse a GStreamert, és használja
PullAudioInputStream
vagyPushAudioInputStream
. További információ: A tömörített bemeneti hang használata.
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Speech-erőforrást.
Referenciadokumentáció-csomag (NuGet) | További minták a GitHubon |
Ebben a rövid útmutatóban egy alkalmazást futtat, amely lefordítja a beszédet egy nyelvről egy másik nyelven lévő szövegre.
Tipp.
Az Azure AI Speech Toolkittel egyszerűen készíthet és futtathat mintákat a Visual Studio Code-on.
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Speech-erőforrás létrehozása az Azure Portalon.
- Kérje le a Speech erőforráskulcsát és régióját. A Speech-erőforrás üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
A környezet beállítása
A Speech SDK NuGet-csomagként érhető el, és a .NET Standard 2.0-t implementálja. Az útmutató későbbi részében telepítheti a Speech SDK-t, de először tekintse meg az SDK telepítési útmutatóját a további követelményekről
Környezeti változók beállítása
Az Azure AI-szolgáltatások eléréséhez hitelesítenie kell az alkalmazást. Ez a cikk bemutatja, hogyan tárolhatja a hitelesítő adatait környezeti változókkal. Ezután hozzáférhet a környezeti változókhoz a kódból az alkalmazás hitelesítéséhez. Éles környezetben biztonságosabban tárolhatja és érheti el a hitelesítő adatait.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
A Speech-erőforráskulcs és -régió környezeti változóinak beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
SPEECH_KEY
környezeti változó beállításához cserélje le a kulcsot az erőforrás egyik kulcsára. - A
SPEECH_REGION
környezeti változó beállításához cserélje le a régiót az erőforrás egyik régiójára.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Feljegyzés
Ha csak az aktuális konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set
ahelyett setx
állíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változók olvasásához szükséges programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Beszéd fordítása mikrofonból
Az alábbi lépéseket követve hozzon létre egy új konzolalkalmazást, és telepítse a Speech SDK-t.
Hozzon létre egy új C++ konzolprojektet a Visual Studio Community 2022-ben.
SpeechTranslation
Telepítse a Speech SDK-t az új projektbe a NuGet-csomagkezelővel.
Install-Package Microsoft.CognitiveServices.Speech
Cserélje le a következő kód tartalmát
SpeechTranslation.cpp
:#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; using namespace Microsoft::CognitiveServices::Speech::Translation; std::string GetEnvironmentVariable(const char* name); int main() { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" auto speechKey = GetEnvironmentVariable("SPEECH_KEY"); auto speechRegion = GetEnvironmentVariable("SPEECH_REGION"); auto speechTranslationConfig = SpeechTranslationConfig::FromSubscription(speechKey, speechRegion); speechTranslationConfig->SetSpeechRecognitionLanguage("en-US"); speechTranslationConfig->AddTargetLanguage("it"); auto audioConfig = AudioConfig::FromDefaultMicrophoneInput(); auto translationRecognizer = TranslationRecognizer::FromConfig(speechTranslationConfig, audioConfig); std::cout << "Speak into your microphone.\n"; auto result = translationRecognizer->RecognizeOnceAsync().get(); if (result->Reason == ResultReason::TranslatedSpeech) { std::cout << "RECOGNIZED: Text=" << result->Text << std::endl; for (auto pair : result->Translations) { auto language = pair.first; auto translation = pair.second; std::cout << "Translated into '" << language << "': " << translation << std::endl; } } else if (result->Reason == ResultReason::NoMatch) { std::cout << "NOMATCH: Speech could not be recognized." << std::endl; } else if (result->Reason == ResultReason::Canceled) { auto cancellation = CancellationDetails::FromResult(result); std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl; if (cancellation->Reason == CancellationReason::Error) { std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl; std::cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl; std::cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl; } } } std::string GetEnvironmentVariable(const char* name) { #if defined(_MSC_VER) size_t requiredSize = 0; (void)getenv_s(&requiredSize, nullptr, 0, name); if (requiredSize == 0) { return ""; } auto buffer = std::make_unique<char[]>(requiredSize); (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name); return buffer.get(); #else auto value = getenv(name); return value ? value : ""; #endif }
A beszédfelismerés nyelvének módosításához cserélje le
en-US
egy másik támogatott nyelvre. Adja meg a teljes területi beállításokat egy kötőjel (-
) elválasztójellel. Például aes-ES
spanyol (Spanyolország) esetében. Az alapértelmezett nyelv azen-US
, ha nem ad meg nyelvet. A több beszélt nyelv egyikének azonosításáról további információt a nyelvazonosítás című témakörben talál.A fordítási célnyelv módosításához cserélje le
it
egy másik támogatott nyelvre. Néhány kivételtől eltekintve csak a területi kötőjel (-
) elválasztójelet megelőző nyelvi kódot adja meg. Használja példáules
spanyol (Spanyolország) helyettes-ES
. Az alapértelmezett nyelv azen
, ha nem ad meg nyelvet.
Hozza létre és futtassa az új konzolalkalmazást a beszédfelismerés mikrofonból való elindításához.
Amikor a rendszer kéri, beszéljen a mikrofonba. A kimondott szövegnek lefordított szövegként kell megjelennie a célnyelven:
Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.
Megjegyzések
Most, hogy elvégezte a rövid útmutatót, íme néhány további szempont:
- Ez a példa a
RecognizeOnceAsync
művelettel legfeljebb 30 másodperces beszédelemeket ír át, vagy amíg a rendszer nem észleli a csendet. További információ a hosszabb hang folyamatos felismeréséről, beleértve a többnyelvű beszélgetéseket is, olvassa el a beszéd fordítása című témakört. - A hangfájlból származó beszéd felismeréséhez használja
FromWavFileInput
a következőFromDefaultMicrophoneInput
helyett:auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
- Tömörített hangfájlok, például MP4 esetén telepítse a GStreamert, és használja
PullAudioInputStream
vagyPushAudioInputStream
. További információ: A tömörített bemeneti hang használata.
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Speech-erőforrást.
Referenciadokumentáció csomag (Go) | További minták a GitHubon |
A Speech SDK for Go nem támogatja a beszédfordítást. Válasszon egy másik programozási nyelvet, vagy a Go referenciát és a cikk elejétől csatolt mintákat.
Referenciadokumentáció | További minták a GitHubon
Ebben a rövid útmutatóban egy alkalmazást futtat, amely lefordítja a beszédet egy nyelvről egy másik nyelven lévő szövegre.
Tipp.
Az Azure AI Speech Toolkittel egyszerűen készíthet és futtathat mintákat a Visual Studio Code-on.
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Speech-erőforrás létrehozása az Azure Portalon.
- Kérje le a Speech erőforráskulcsát és régióját. A Speech-erőforrás üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
A környezet beállítása
Mielőtt bármit megtehet, telepítenie kell a Speech SDK-t. A rövid útmutatóban szereplő minta a Java-futtatókörnyezettel működik.
- Telepítse az Apache Maven-t. Ezután futtassa
mvn -v
a sikeres telepítés megerősítéséhez. - Hozzon létre egy új
pom.xml
fájlt a projekt gyökerében, és másolja be a következőt:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.microsoft.cognitiveservices.speech.samples</groupId> <artifactId>quickstart-eclipse</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.microsoft.cognitiveservices.speech</groupId> <artifactId>client-sdk</artifactId> <version>1.40.0</version> </dependency> </dependencies> </project>
- Telepítse a Speech SDK-t és a függőségeket.
mvn clean dependency:copy-dependencies
Környezeti változók beállítása
Az Azure AI-szolgáltatások eléréséhez hitelesítenie kell az alkalmazást. Ez a cikk bemutatja, hogyan tárolhatja a hitelesítő adatait környezeti változókkal. Ezután hozzáférhet a környezeti változókhoz a kódból az alkalmazás hitelesítéséhez. Éles környezetben biztonságosabban tárolhatja és érheti el a hitelesítő adatait.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
A Speech-erőforráskulcs és -régió környezeti változóinak beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
SPEECH_KEY
környezeti változó beállításához cserélje le a kulcsot az erőforrás egyik kulcsára. - A
SPEECH_REGION
környezeti változó beállításához cserélje le a régiót az erőforrás egyik régiójára.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Feljegyzés
Ha csak az aktuális konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set
ahelyett setx
állíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változók olvasásához szükséges programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Beszéd fordítása mikrofonból
Az alábbi lépéseket követve hozzon létre egy új konzolalkalmazást a beszédfelismeréshez.
Hozzon létre egy új fájlt
SpeechTranslation.java
ugyanabban a projekt gyökérkönyvtárában.Másolja a következő kódot a következőbe
SpeechTranslation.java
:import com.microsoft.cognitiveservices.speech.*; import com.microsoft.cognitiveservices.speech.audio.AudioConfig; import com.microsoft.cognitiveservices.speech.translation.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.Map; public class SpeechTranslation { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" private static String speechKey = System.getenv("SPEECH_KEY"); private static String speechRegion = System.getenv("SPEECH_REGION"); public static void main(String[] args) throws InterruptedException, ExecutionException { SpeechTranslationConfig speechTranslationConfig = SpeechTranslationConfig.fromSubscription(speechKey, speechRegion); speechTranslationConfig.setSpeechRecognitionLanguage("en-US"); String[] toLanguages = { "it" }; for (String language : toLanguages) { speechTranslationConfig.addTargetLanguage(language); } recognizeFromMicrophone(speechTranslationConfig); } public static void recognizeFromMicrophone(SpeechTranslationConfig speechTranslationConfig) throws InterruptedException, ExecutionException { AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput(); TranslationRecognizer translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig); System.out.println("Speak into your microphone."); Future<TranslationRecognitionResult> task = translationRecognizer.recognizeOnceAsync(); TranslationRecognitionResult translationRecognitionResult = task.get(); if (translationRecognitionResult.getReason() == ResultReason.TranslatedSpeech) { System.out.println("RECOGNIZED: Text=" + translationRecognitionResult.getText()); for (Map.Entry<String, String> pair : translationRecognitionResult.getTranslations().entrySet()) { System.out.printf("Translated into '%s': %s\n", pair.getKey(), pair.getValue()); } } else if (translationRecognitionResult.getReason() == ResultReason.NoMatch) { System.out.println("NOMATCH: Speech could not be recognized."); } else if (translationRecognitionResult.getReason() == ResultReason.Canceled) { CancellationDetails cancellation = CancellationDetails.fromResult(translationRecognitionResult); System.out.println("CANCELED: Reason=" + cancellation.getReason()); if (cancellation.getReason() == CancellationReason.Error) { System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode()); System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails()); System.out.println("CANCELED: Did you set the speech resource key and region values?"); } } System.exit(0); } }
A beszédfelismerés nyelvének módosításához cserélje le
en-US
egy másik támogatott nyelvre. Adja meg a teljes területi beállításokat egy kötőjel (-
) elválasztójellel. Például aes-ES
spanyol (Spanyolország) esetében. Az alapértelmezett nyelv azen-US
, ha nem ad meg nyelvet. A több beszélt nyelv egyikének azonosításáról további információt a nyelvazonosítás című témakörben talál.A fordítási célnyelv módosításához cserélje le
it
egy másik támogatott nyelvre. Néhány kivételtől eltekintve csak a területi kötőjel (-
) elválasztójelet megelőző nyelvi kódot adja meg. Használja példáules
spanyol (Spanyolország) helyettes-ES
. Az alapértelmezett nyelv azen
, ha nem ad meg nyelvet.
Az új konzolalkalmazás futtatásával indítsa el a beszédfelismerést egy mikrofonból:
javac SpeechTranslation.java -cp ".;target\dependency\*"
java -cp ".;target\dependency\*" SpeechTranslation
Amikor a rendszer kéri, beszéljen a mikrofonba. A kimondott szövegnek lefordított szövegként kell megjelennie a célnyelven:
Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.
Megjegyzések
Most, hogy elvégezte a rövid útmutatót, íme néhány további szempont:
- Ez a példa a
RecognizeOnceAsync
művelettel legfeljebb 30 másodperces beszédelemeket ír át, vagy amíg a rendszer nem észleli a csendet. További információ a hosszabb hang folyamatos felismeréséről, beleértve a többnyelvű beszélgetéseket is, olvassa el a beszéd fordítása című témakört. - A hangfájlból származó beszéd felismeréséhez használja
fromWavFileInput
a következőfromDefaultMicrophoneInput
helyett:AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
- Tömörített hangfájlok, például MP4 esetén telepítse a GStreamert, és használja
PullAudioInputStream
vagyPushAudioInputStream
. További információ: A tömörített bemeneti hang használata.
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Speech-erőforrást.
Referenciadokumentáció csomag (npm) | További minták a GitHub | Library forráskódján |
Ebben a rövid útmutatóban egy alkalmazást futtat, amely lefordítja a beszédet egy nyelvről egy másik nyelven lévő szövegre.
Tipp.
Az Azure AI Speech Toolkittel egyszerűen készíthet és futtathat mintákat a Visual Studio Code-on.
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Speech-erőforrás létrehozása az Azure Portalon.
- Kérje le a Speech erőforráskulcsát és régióját. A Speech-erőforrás üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
A környezet beállítása
Mielőtt bármit megtehet, telepítenie kell a JavaScripthez készült Speech SDK-t. Ha csak a csomag nevét szeretné telepíteni, futtassa a parancsot npm install microsoft-cognitiveservices-speech-sdk
. Az irányított telepítési utasításokért tekintse meg az SDK telepítési útmutatóját.
Környezeti változók beállítása
Az Azure AI-szolgáltatások eléréséhez hitelesítenie kell az alkalmazást. Ez a cikk bemutatja, hogyan tárolhatja a hitelesítő adatait környezeti változókkal. Ezután hozzáférhet a környezeti változókhoz a kódból az alkalmazás hitelesítéséhez. Éles környezetben biztonságosabban tárolhatja és érheti el a hitelesítő adatait.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
A Speech-erőforráskulcs és -régió környezeti változóinak beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
SPEECH_KEY
környezeti változó beállításához cserélje le a kulcsot az erőforrás egyik kulcsára. - A
SPEECH_REGION
környezeti változó beállításához cserélje le a régiót az erőforrás egyik régiójára.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Feljegyzés
Ha csak az aktuális konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set
ahelyett setx
állíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változók olvasásához szükséges programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Beszéd fordítása fájlból
Kövesse az alábbi lépéseket egy Node.js-konzolalkalmazás létrehozásához a beszédfelismeréshez.
Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy új fájlt.
SpeechTranslation.js
Telepítse a JavaScripthez készült Speech SDK-t:
npm install microsoft-cognitiveservices-speech-sdk
Másolja a következő kódot a következőbe
SpeechTranslation.js
:const fs = require("fs"); const sdk = require("microsoft-cognitiveservices-speech-sdk"); // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" const speechTranslationConfig = sdk.SpeechTranslationConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION); speechTranslationConfig.speechRecognitionLanguage = "en-US"; var language = "it"; speechTranslationConfig.addTargetLanguage(language); function fromFile() { let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav")); let translationRecognizer = new sdk.TranslationRecognizer(speechTranslationConfig, audioConfig); translationRecognizer.recognizeOnceAsync(result => { switch (result.reason) { case sdk.ResultReason.TranslatedSpeech: console.log(`RECOGNIZED: Text=${result.text}`); console.log("Translated into [" + language + "]: " + result.translations.get(language)); break; case sdk.ResultReason.NoMatch: console.log("NOMATCH: Speech could not be recognized."); break; case sdk.ResultReason.Canceled: const cancellation = sdk.CancellationDetails.fromResult(result); console.log(`CANCELED: Reason=${cancellation.reason}`); if (cancellation.reason == sdk.CancellationReason.Error) { console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`); console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`); console.log("CANCELED: Did you set the speech resource key and region values?"); } break; } translationRecognizer.close(); }); } fromFile();
Ebben
SpeechTranslation.js
a fájlban cserélje leYourAudioFile.wav
a saját WAV-fájlját. Ez a példa csak WAV-fájlból ismeri fel a beszédet. További információ az egyéb hangformátumokról: A tömörített bemeneti hang használata. Ez a példa legfeljebb 30 másodperces hangot támogat.A beszédfelismerés nyelvének módosításához cserélje le
en-US
egy másik támogatott nyelvre. Adja meg a teljes területi beállításokat egy kötőjel (-
) elválasztójellel. Például aes-ES
spanyol (Spanyolország) esetében. Az alapértelmezett nyelv azen-US
, ha nem ad meg nyelvet. A több beszélt nyelv egyikének azonosításáról további információt a nyelvazonosítás című témakörben talál.A fordítási célnyelv módosításához cserélje le
it
egy másik támogatott nyelvre. Néhány kivételtől eltekintve csak a területi kötőjel (-
) elválasztójelet megelőző nyelvi kódot adja meg. Használja példáules
spanyol (Spanyolország) helyettes-ES
. Az alapértelmezett nyelv azen
, ha nem ad meg nyelvet.
Futtassa az új konzolalkalmazást a beszédfelismerés fájlból való elindításához:
node.exe SpeechTranslation.js
A hangfájlból származó beszédnek lefordított szövegként kell megjelennie a célnyelven:
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into [it]: Sono entusiasta di provare la traduzione vocale.
Megjegyzések
Most, hogy elvégezte a rövid útmutatót, íme néhány további szempont:
Ez a példa a recognizeOnceAsync
művelettel legfeljebb 30 másodperces beszédelemeket ír át, vagy amíg a rendszer nem észleli a csendet. További információ a hosszabb hang folyamatos felismeréséről, beleértve a többnyelvű beszélgetéseket is, olvassa el a beszéd fordítása című témakört.
Feljegyzés
A mikrofonból való beszédfelismerés nem támogatott a Node.js. Csak böngészőalapú JavaScript-környezetben támogatott.
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Speech-erőforrást.
Referenciadokumentáció csomag (letöltés) | További minták a GitHubon |
Az Objective-C-hez készült Speech SDK támogatja a beszédfordítást, de itt még nem tartalmaztunk útmutatót. Válasszon egy másik programozási nyelvet az első lépésekhez, és ismerje meg a fogalmakat, vagy tekintse meg a cikk elején hivatkozott Objective-C referenciát és mintákat.
Referenciadokumentáció csomag (letöltés) | További minták a GitHubon |
A Speech SDK for Swift támogatja a beszédfordítást, de itt még nem tartalmaztunk útmutatót. Válasszon egy másik programozási nyelvet az első lépésekhez, és ismerje meg a fogalmakat, vagy tekintse meg a swift-hivatkozást és a cikk elején hivatkozott mintákat.
Referenciadokumentáció csomag (PyPi) | További minták a GitHubon |
Ebben a rövid útmutatóban egy alkalmazást futtat, amely lefordítja a beszédet egy nyelvről egy másik nyelven lévő szövegre.
Tipp.
Az Azure AI Speech Toolkittel egyszerűen készíthet és futtathat mintákat a Visual Studio Code-on.
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Speech-erőforrás létrehozása az Azure Portalon.
- Kérje le a Speech erőforráskulcsát és régióját. A Speech-erőforrás üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
A környezet beállítása
A PythonHoz készült Speech SDK Python-csomagindex (PyPI) modulként érhető el. A PythonHoz készült Speech SDK kompatibilis a Windows, a Linux és a macOS rendszerrel.
- Telepítenie kell a Visual Studio 2015-höz, 2017-hez, 2019-hez és 2022-hez készült Microsoft Visual C++ terjeszthető verziót a platformhoz. A csomag első telepítése újraindítást igényelhet.
- Linuxon az x64-alapú célarchitektúrát kell használnia.
Telepítse a Python 3.7-es vagy újabb verzióját. Először tekintse meg az SDK telepítési útmutatóját a további követelményekkel kapcsolatban
Környezeti változók beállítása
Az Azure AI-szolgáltatások eléréséhez hitelesítenie kell az alkalmazást. Ez a cikk bemutatja, hogyan tárolhatja a hitelesítő adatait környezeti változókkal. Ezután hozzáférhet a környezeti változókhoz a kódból az alkalmazás hitelesítéséhez. Éles környezetben biztonságosabban tárolhatja és érheti el a hitelesítő adatait.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
A Speech-erőforráskulcs és -régió környezeti változóinak beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
SPEECH_KEY
környezeti változó beállításához cserélje le a kulcsot az erőforrás egyik kulcsára. - A
SPEECH_REGION
környezeti változó beállításához cserélje le a régiót az erőforrás egyik régiójára.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Feljegyzés
Ha csak az aktuális konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set
ahelyett setx
állíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változók olvasásához szükséges programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Beszéd fordítása mikrofonból
Kövesse az alábbi lépéseket egy új konzolalkalmazás létrehozásához.
Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy új fájlt.
speech_translation.py
Futtassa ezt a parancsot a Speech SDK telepítéséhez:
pip install azure-cognitiveservices-speech
Másolja a következő kódot a következőbe
speech_translation.py
:import os import azure.cognitiveservices.speech as speechsdk def recognize_from_microphone(): # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speech_translation_config = speechsdk.translation.SpeechTranslationConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) speech_translation_config.speech_recognition_language="en-US" to_language ="it" speech_translation_config.add_target_language(to_language) audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True) translation_recognizer = speechsdk.translation.TranslationRecognizer(translation_config=speech_translation_config, audio_config=audio_config) print("Speak into your microphone.") translation_recognition_result = translation_recognizer.recognize_once_async().get() if translation_recognition_result.reason == speechsdk.ResultReason.TranslatedSpeech: print("Recognized: {}".format(translation_recognition_result.text)) print("""Translated into '{}': {}""".format( to_language, translation_recognition_result.translations[to_language])) elif translation_recognition_result.reason == speechsdk.ResultReason.NoMatch: print("No speech could be recognized: {}".format(translation_recognition_result.no_match_details)) elif translation_recognition_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = translation_recognition_result.cancellation_details print("Speech Recognition canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: print("Error details: {}".format(cancellation_details.error_details)) print("Did you set the speech resource key and region values?") recognize_from_microphone()
A beszédfelismerés nyelvének módosításához cserélje le
en-US
egy másik támogatott nyelvre. Adja meg a teljes területi beállításokat egy kötőjel (-
) elválasztójellel. Például aes-ES
spanyol (Spanyolország) esetében. Az alapértelmezett nyelv azen-US
, ha nem ad meg nyelvet. A több beszélt nyelv egyikének azonosításáról további információt a nyelvazonosítás című témakörben talál.A fordítási célnyelv módosításához cserélje le
it
egy másik támogatott nyelvre. Néhány kivételtől eltekintve csak a területi kötőjel (-
) elválasztójelet megelőző nyelvi kódot adja meg. Használja példáules
spanyol (Spanyolország) helyettes-ES
. Az alapértelmezett nyelv azen
, ha nem ad meg nyelvet.
Az új konzolalkalmazás futtatásával indítsa el a beszédfelismerést egy mikrofonból:
python speech_translation.py
Amikor a rendszer kéri, beszéljen a mikrofonba. A kimondott szövegnek lefordított szövegként kell megjelennie a célnyelven:
Speak into your microphone.
Recognized: I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.
Megjegyzések
Most, hogy elvégezte a rövid útmutatót, íme néhány további szempont:
- Ez a példa a
recognize_once_async
művelettel legfeljebb 30 másodperces beszédelemeket ír át, vagy amíg a rendszer nem észleli a csendet. További információ a hosszabb hang folyamatos felismeréséről, beleértve a többnyelvű beszélgetéseket is, olvassa el a beszéd fordítása című témakört. - A hangfájlból származó beszéd felismeréséhez használja
filename
a következőuse_default_microphone
helyett:audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
- Tömörített hangfájlok, például MP4 esetén telepítse a GStreamert, és használja
PullAudioInputStream
vagyPushAudioInputStream
. További információ: A tömörített bemeneti hang használata.
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Speech-erőforrást.
Speech to text REST API reference | Speech to text REST API for short audio reference | További minták a GitHubon
A REST API nem támogatja a beszédfordítást. Válasszon másik programozási nyelvet vagy eszközt a lap tetején.
Ebben a rövid útmutatóban egy alkalmazást futtat, amely lefordítja a beszédet egy nyelvről egy másik nyelven lévő szövegre.
Tipp.
Az Azure AI Speech Toolkittel egyszerűen készíthet és futtathat mintákat a Visual Studio Code-on.
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Speech-erőforrás létrehozása az Azure Portalon.
- Kérje le a Speech erőforráskulcsát és régióját. A Speech-erőforrás üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
A környezet beállítása
Kövesse ezeket a lépéseket, és tekintse meg a Speech CLI rövid útmutatóját a platform egyéb követelményeiről.
Futtassa a következő .NET CLI-parancsot a Speech CLI telepítéséhez:
dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
Futtassa az alábbi parancsokat a Speech-erőforráskulcs és -régió konfigurálásához. Cserélje le
SUBSCRIPTION-KEY
a Speech erőforráskulcsot, és cserélje leREGION
a Speech erőforrásrégiójára.spx config @key --set SUBSCRIPTION-KEY spx config @region --set REGION
Beszéd fordítása mikrofonból
Futtassa a következő parancsot a mikrofon beszédének lefordításához angolról olaszra:
spx translate --source en-US --target it --microphone
Beszéljen a mikrofonba, és valós időben láthatja a lefordított beszéd átiratát. A Speech CLI 30 másodperc vagy a Ctrl+C billentyűkombináció lenyomása után leáll.
Connection CONNECTED...
TRANSLATING into 'it': Sono (from 'I'm')
TRANSLATING into 'it': Sono entusiasta (from 'I'm excited to')
TRANSLATING into 'it': Sono entusiasta di provare la parola (from 'I'm excited to try speech')
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale. (from 'I'm excited to try speech translation.')
Megjegyzések
Most, hogy elvégezte a rövid útmutatót, íme néhány további szempont:
- Ha hangfájlból szeretne beszédet lekérni, használja ahelyett
--microphone
, hogy--file
a . Tömörített hangfájlok, például MP4 esetén telepítse a GStreamert, és használja--format
. További információ: A tömörített bemeneti hang használata.spx translate --source en-US --target it --file YourAudioFile.wav spx translate --source en-US --target it --file YourAudioFile.mp4 --format any
- Adott szavak vagy kimondott szövegek felismerési pontosságának javítása érdekében használjon kifejezéslistát. Sorba vagy szövegfájlba is belefoglalhatja a kifejezéslistát:
spx translate --source en-US --target it --microphone --phrases "Contoso;Jessie;Rehaan;" spx translate --source en-US --target it --microphone --phrases @phrases.txt
- A beszédfelismerés nyelvének módosításához cserélje le
en-US
egy másik támogatott nyelvre. Adja meg a teljes területi beállításokat egy kötőjel (-
) elválasztójellel. Például aes-ES
spanyol (Spanyolország) esetében. Az alapértelmezett nyelv azen-US
, ha nem ad meg nyelvet.spx translate --microphone --source es-ES
- A fordítási célnyelv módosításához cserélje le
it
egy másik támogatott nyelvre. Néhány kivételtől eltekintve csak a területi kötőjel (-
) elválasztójelet megelőző nyelvi kódot adja meg. Használja példáules
spanyol (Spanyolország) helyettes-ES
. Az alapértelmezett nyelv azen
, ha nem ad meg nyelvet.spx translate --microphone --target es
- A 30 másodpercnél hosszabb hang folyamatos felismeréséhez fűzze hozzá a következőt
--continuous
:spx translate --source en-US --target it --microphone --continuous
Futtassa ezt a parancsot további beszédfordítási lehetőségekről, például fájlbemenetről és kimenetről:
spx help translate
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Speech-erőforrást.