Rövid útmutató: Szöveg átalakítása beszédté
Referenciadokumentáció-csomag (NuGet) | További minták a GitHubon |
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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, amely a .NET Standard 2.0-t implementálja. Telepítse a Speech SDK-t az útmutató későbbi részében a konzol használatával. A részletes telepítési utasításokért tekintse meg a Speech SDK telepítését ismertető cikket.
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.
Az alkalmazás létrehozása
Az alábbi lépéseket követve hozzon létre egy konzolalkalmazást, és telepítse a Speech SDK-t.
Nyisson meg egy parancssori ablakot abban a mappában, ahol az új projektet szeretné. A parancs futtatásával hozzon létre egy konzolalkalmazást a .NET CLI-vel.
dotnet new console
A parancs létrehoz egy Program.cs fájlt a projektkönyvtárban.
Telepítse a Speech SDK-t az új projektbe a .NET CLI-vel.
dotnet add package Microsoft.CognitiveServices.Speech
Cserélje le a Program.cs tartalmát a következő kódra.
using System; using System.IO; using System.Threading.Tasks; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; 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 OutputSpeechSynthesisResult(SpeechSynthesisResult speechSynthesisResult, string text) { switch (speechSynthesisResult.Reason) { case ResultReason.SynthesizingAudioCompleted: Console.WriteLine($"Speech synthesized for text: [{text}]"); break; case ResultReason.Canceled: var cancellation = SpeechSynthesisCancellationDetails.FromResult(speechSynthesisResult); 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; default: break; } } async static Task Main(string[] args) { var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); // The neural multilingual voice can speak different languages based on the input text. speechConfig.SpeechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; using (var speechSynthesizer = new SpeechSynthesizer(speechConfig)) { // Get text from the console and synthesize to the default speaker. Console.WriteLine("Enter some text that you want to speak >"); string text = Console.ReadLine(); var speechSynthesisResult = await speechSynthesizer.SpeakTextAsync(text); OutputSpeechSynthesisResult(speechSynthesisResult, text); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } }
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a beviteli szöveg angol nyelven van, izgatottan várom, hogy kipróbálhassam a szöveget a beszédhez , és ön nyelvként van beállítva
es-ES-ElviraNeural
, a szöveg angol nyelven, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Az új konzolalkalmazás futtatásával indítsa el a beszédszintézist az alapértelmezett hangszórón.
dotnet run
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.Írjon be egy szöveget, amelyet el szeretne mondani. Írja be például, hogy szívesen kipróbálom a szövegfelolvasást. Válassza az Enter billentyűt a szintetizált beszéd meghallgatásához.
Enter some text that you want to speak > I'm excited to try text to speech
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a SpeakTextAsync
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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 |
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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, amely a .NET Standard 2.0-t implementálja. Az útmutató későbbi részében telepítse a Speech SDK-t. A részletes telepítési utasításokért tekintse meg a Speech SDK telepítését ismertető cikket.
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.
Az alkalmazás létrehozása
Az alábbi lépéseket követve hozzon létre egy konzolalkalmazást, és telepítse a Speech SDK-t.
Hozzon létre egy C++ konzolprojektet a Visual Studio Communityben.
SpeechSynthesis
Cserélje le a SpeechSynthesis.cpp tartalmát a következő kódra:
#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; 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"); if ((size(speechKey) == 0) || (size(speechRegion) == 0)) { std::cout << "Please set both SPEECH_KEY and SPEECH_REGION environment variables." << std::endl; return -1; } auto speechConfig = SpeechConfig::FromSubscription(speechKey, speechRegion); // The neural multilingual voice can speak different languages based on the input text. speechConfig->SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); auto speechSynthesizer = SpeechSynthesizer::FromConfig(speechConfig); // Get text from the console and synthesize to the default speaker. std::cout << "Enter some text that you want to speak >" << std::endl; std::string text; getline(std::cin, text); auto result = speechSynthesizer->SpeakTextAsync(text).get(); // Checks result. if (result->Reason == ResultReason::SynthesizingAudioCompleted) { std::cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl; } else if (result->Reason == ResultReason::Canceled) { auto cancellation = SpeechSynthesisCancellationDetails::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::cout << "Press enter to exit..." << std::endl; std::cin.get(); } 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 }
Válassza az Eszközök>Nuget Csomagkezelő> Csomagkezelő konzol lehetőséget. A Csomagkezelő konzolon futtassa a következő parancsot:
Install-Package Microsoft.CognitiveServices.Speech
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Hozza létre és futtassa az új konzolalkalmazást a beszédszintézis alapértelmezett beszélőre való elindításához.
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.Írjon be egy szöveget, amelyet el szeretne mondani. Írja be például, hogy szívesen kipróbálom a szövegfelolvasást. Válassza az Enter billentyűt a szintetizált beszéd meghallgatásához.
Enter some text that you want to speak > I'm excited to try text to speech
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a SpeakTextAsync
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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 |
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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
Telepítse a Speech SDK-t a Go nyelvhez. A részletes telepítési utasításokért tekintse meg a Speech SDK telepítését ismertető cikket.
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.
Az alkalmazás létrehozása
Go-modul létrehozásához kövesse az alábbi lépéseket.
Nyisson meg egy parancssori ablakot abban a mappában, ahol az új projektet szeretné. Hozzon létre egy speech-synthesis.go nevű új fájlt.
Másolja a következő kódot a speech-synthesis.go fájlba:
package main import ( "bufio" "fmt" "os" "strings" "time" "github.com/Microsoft/cognitive-services-speech-sdk-go/audio" "github.com/Microsoft/cognitive-services-speech-sdk-go/common" "github.com/Microsoft/cognitive-services-speech-sdk-go/speech" ) func synthesizeStartedHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Println("Synthesis started.") } func synthesizingHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Printf("Synthesizing, audio chunk size %d.\n", len(event.Result.AudioData)) } func synthesizedHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Printf("Synthesized, audio length %d.\n", len(event.Result.AudioData)) } func cancelledHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Println("Received a cancellation.") } func main() { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speechKey := os.Getenv("SPEECH_KEY") speechRegion := os.Getenv("SPEECH_REGION") audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput() if err != nil { fmt.Println("Got an error: ", err) return } defer audioConfig.Close() speechConfig, err := speech.NewSpeechConfigFromSubscription(speechKey, speechRegion) if err != nil { fmt.Println("Got an error: ", err) return } defer speechConfig.Close() speechConfig.SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural") speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig) if err != nil { fmt.Println("Got an error: ", err) return } defer speechSynthesizer.Close() speechSynthesizer.SynthesisStarted(synthesizeStartedHandler) speechSynthesizer.Synthesizing(synthesizingHandler) speechSynthesizer.SynthesisCompleted(synthesizedHandler) speechSynthesizer.SynthesisCanceled(cancelledHandler) for { fmt.Printf("Enter some text that you want to speak, or enter empty text to exit.\n> ") text, _ := bufio.NewReader(os.Stdin).ReadString('\n') text = strings.TrimSuffix(text, "\n") if len(text) == 0 { break } task := speechSynthesizer.SpeakTextAsync(text) var outcome speech.SpeechSynthesisOutcome select { case outcome = <-task: case <-time.After(60 * time.Second): fmt.Println("Timed out") return } defer outcome.Close() if outcome.Error != nil { fmt.Println("Got an error: ", outcome.Error) return } if outcome.Result.Reason == common.SynthesizingAudioCompleted { fmt.Printf("Speech synthesized to speaker for text [%s].\n", text) } else { cancellation, _ := speech.NewCancellationDetailsFromSpeechSynthesisResult(outcome.Result) fmt.Printf("CANCELED: Reason=%d.\n", cancellation.Reason) if cancellation.Reason == common.Error { fmt.Printf("CANCELED: ErrorCode=%d\nCANCELED: ErrorDetails=[%s]\nCANCELED: Did you set the speech resource key and region values?\n", cancellation.ErrorCode, cancellation.ErrorDetails) } } } }
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Futtassa a következő parancsokat egy go.mod fájl létrehozásához, amely a GitHubon üzemeltetett összetevőkre hivatkozik:
go mod init speech-synthesis go get github.com/Microsoft/cognitive-services-speech-sdk-go
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.Most hozza létre és futtassa a kódot:
go build go run speech-synthesis
Megjegyzések
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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ó | További minták a GitHubon
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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 környezet beállításához telepítse 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 pom.xml fájlt a projekt gyökerében, és másolja be a következő kódot:
<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.
Az alkalmazás létrehozása
Az alábbi lépéseket követve hozzon létre egy konzolalkalmazást a beszédfelismeréshez.
Hozzon létre egy SpeechSynthesis.java nevű fájlt ugyanabban a projekt gyökérkönyvtárában.
Másolja a következő kódot a SpeechSynthesis.java:
import com.microsoft.cognitiveservices.speech.*; import com.microsoft.cognitiveservices.speech.audio.*; import java.util.Scanner; import java.util.concurrent.ExecutionException; public class SpeechSynthesis { // 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 { SpeechConfig speechConfig = SpeechConfig.fromSubscription(speechKey, speechRegion); speechConfig.setSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig); // Get text from the console and synthesize to the default speaker. System.out.println("Enter some text that you want to speak >"); String text = new Scanner(System.in).nextLine(); if (text.isEmpty()) { return; } SpeechSynthesisResult speechSynthesisResult = speechSynthesizer.SpeakTextAsync(text).get(); if (speechSynthesisResult.getReason() == ResultReason.SynthesizingAudioCompleted) { System.out.println("Speech synthesized to speaker for text [" + text + "]"); } else if (speechSynthesisResult.getReason() == ResultReason.Canceled) { SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechSynthesisResult); 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édszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Futtassa a konzolalkalmazást a beszédszintézis alapértelmezett hangszóróra történő kimenetéhez.
javac SpeechSynthesis.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" SpeechSynthesis
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.Írjon be egy szöveget, amelyet el szeretne mondani. Írja be például, hogy szívesen kipróbálom a szövegfelolvasást. Válassza az Enter billentyűt a szintetizált beszéd meghallgatásához.
Enter some text that you want to speak > I'm excited to try text to speech
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a SpeakTextAsync
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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 |
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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 környezet beállításához telepítse 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
. A részletes telepítési utasításokért tekintse meg a Speech SDK telepítését ismertető cikket.
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.
Az alkalmazás létrehozása
Ezeket a lépéseket követve hozzon létre egy Node.js-konzolalkalmazást a beszédszintézishez.
Nyisson meg egy konzolablakot, ahol az új projektet szeretné, és hozzon létre egy SpeechSynthesis.js nevű fájlt.
Telepítse a JavaScripthez készült Speech SDK-t:
npm install microsoft-cognitiveservices-speech-sdk
Másolja a következő kódot a SpeechSynthesis.js:
(function() { "use strict"; var sdk = require("microsoft-cognitiveservices-speech-sdk"); var readline = require("readline"); var audioFile = "YourAudioFile.wav"; // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION); const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile); // The language of the voice that speaks. speechConfig.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; // Create the speech synthesizer. var synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question("Enter some text that you want to speak >\n> ", function (text) { rl.close(); // Start the synthesizer and wait for a result. synthesizer.speakTextAsync(text, function (result) { if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) { console.log("synthesis finished."); } else { console.error("Speech synthesis canceled, " + result.errorDetails + "\nDid you set the speech resource key and region values?"); } synthesizer.close(); synthesizer = null; }, function (err) { console.trace("err - " + err); synthesizer.close(); synthesizer = null; }); console.log("Now synthesizing to: " + audioFile); }); }());
A SpeechSynthesis.js tetszés szerint átnevezheti YourAudioFile.wav egy másik kimeneti fájlnévre.
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Futtassa a konzolalkalmazást a beszédszintézis fájlba való elindításához:
node SpeechSynthesis.js
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.A megadott szövegnek egy hangfájlban kell lennie:
Enter some text that you want to speak > > I'm excited to try text to speech Now synthesizing to: YourAudioFile.wav synthesis finished.
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a SpeakTextAsync
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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 Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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
Az Objective-C-hez készült Speech SDK keretrendszercsomagként van elosztva. A keretrendszer támogatja az Objective-C-t és a Swiftet iOS és macOS rendszeren is.
A Speech SDK használható Xcode-projektekben CocoaPodként, vagy közvetlenül és manuálisan csatolva. Ez az útmutató egy CocoaPodot használ. Telepítse a CocoaPod függőségkezelőt a telepítési útmutatóban leírtak szerint.
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.
Az alkalmazás létrehozása
Az alábbi lépéseket követve szintetizálhatja a beszédet egy macOS-alkalmazásban.
Klónozza az Azure-Samples/cognitive-services-speech-sdk adattárat a synthesize audio lekéréséhez a MacOS-en futó Objective-C-ben a Speech SDK mintaprojekt használatával. Az adattár iOS-mintákkal is rendelkezik.
Nyissa meg a letöltött mintaalkalmazás (
helloworld
) könyvtárát egy terminálban.Futtassa a következő parancsot:
pod install
. Ez a parancs létrehoz egyhelloworld.xcworkspace
Xcode-munkaterületet, amely függőségként tartalmazza a mintaalkalmazást és a Speech SDK-t is.Nyissa meg a munkaterületet
helloworld.xcworkspace
az Xcode-ban.Nyissa meg az AppDelegate.m nevű fájlt, és keresse meg a metódust az
buttonPressed
itt látható módon.- (void)buttonPressed:(NSButton *)button { // Creates an instance of a speech config with specified subscription key and service region. NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"]; NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"]; SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion]; speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural"; SPXSpeechSynthesizer *speechSynthesizer = [[SPXSpeechSynthesizer alloc] init:speechConfig]; NSLog(@"Start synthesizing..."); SPXSpeechSynthesisResult *speechResult = [speechSynthesizer speakText:[self.textField stringValue]]; // Checks result. if (SPXResultReason_Canceled == speechResult.reason) { SPXSpeechSynthesisCancellationDetails *details = [[SPXSpeechSynthesisCancellationDetails alloc] initFromCanceledSynthesisResult:speechResult]; NSLog(@"Speech synthesis was canceled: %@. Did you set the speech resource key and region values?", details.errorDetails); } else if (SPXResultReason_SynthesizingAudioCompleted == speechResult.reason) { NSLog(@"Speech synthesis was completed"); } else { NSLog(@"There was an error."); } }
Az AppDelegate.m-ben használja a Speech-erőforráskulcshoz és -régióhoz korábban beállított környezeti változókat.
NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"]; NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
Az AppDelegate.m-ben opcionálisan szerepeljen egy beszédszintézis hangneve az itt látható módon:
speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Ha láthatóvá szeretné tenni a hibakeresési kimenetet, válassza a Hibakeresési terület>aktiválása konzol megtekintése>lehetőséget.
A példakód létrehozásához és futtatásához válassza a Termékfuttatás> lehetőséget a menüből, vagy válassza a Lejátszás gombot.
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.
Miután beírt néhány szöveget, és kiválasztotta az appban a gombot, hallania kell a szintetizált hang lejátszását.
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a SpeakText
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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 Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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 for Swift keretrendszercsomagként van elosztva. A keretrendszer támogatja az Objective-C-t és a Swiftet iOS és macOS rendszeren is.
A Speech SDK használható Xcode-projektekben CocoaPodként, vagy közvetlenül és manuálisan csatolva. Ez az útmutató egy CocoaPodot használ. Telepítse a CocoaPod függőségkezelőt a telepítési útmutatóban leírtak szerint.
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.
Az alkalmazás létrehozása
Az alábbi lépéseket követve szintetizálhatja a beszédet egy macOS-alkalmazásban.
Klónozza az Azure-Samples/cognitive-services-speech-sdk adattárat a Synthesize hang lekéréséhez MacOS-en a Swiftben a Speech SDK mintaprojekt használatával. Az adattár iOS-mintákkal is rendelkezik.
Lépjen a letöltött mintaalkalmazás (
helloworld
) könyvtárára egy terminálban.Futtassa a következő parancsot:
pod install
. Ez a parancs létrehoz egyhelloworld.xcworkspace
Xcode-munkaterületet, amely függőségként tartalmazza a mintaalkalmazást és a Speech SDK-t is.Nyissa meg a munkaterületet
helloworld.xcworkspace
az Xcode-ban.Nyissa meg az AppDelegate.swift nevű fájlt, és keresse meg az
applicationDidFinishLaunching
itt látható módszereket éssynthesize
metódusokat.import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate { var textField: NSTextField! var synthesisButton: NSButton! var inputText: String! var sub: String! var region: String! @IBOutlet weak var window: NSWindow! func applicationDidFinishLaunching(_ aNotification: Notification) { print("loading") // load subscription information sub = ProcessInfo.processInfo.environment["SPEECH_KEY"] region = ProcessInfo.processInfo.environment["SPEECH_REGION"] inputText = "" textField = NSTextField(frame: NSRect(x: 100, y: 200, width: 200, height: 50)) textField.textColor = NSColor.black textField.lineBreakMode = .byWordWrapping textField.placeholderString = "Type something to synthesize." textField.delegate = self self.window.contentView?.addSubview(textField) synthesisButton = NSButton(frame: NSRect(x: 100, y: 100, width: 200, height: 30)) synthesisButton.title = "Synthesize" synthesisButton.target = self synthesisButton.action = #selector(synthesisButtonClicked) self.window.contentView?.addSubview(synthesisButton) } @objc func synthesisButtonClicked() { DispatchQueue.global(qos: .userInitiated).async { self.synthesize() } } func synthesize() { var speechConfig: SPXSpeechConfiguration? do { try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region) } catch { print("error \(error) happened") speechConfig = nil } speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; let synthesizer = try! SPXSpeechSynthesizer(speechConfig!) let result = try! synthesizer.speakText(inputText) if result.reason == SPXResultReason.canceled { let cancellationDetails = try! SPXSpeechSynthesisCancellationDetails(fromCanceledSynthesisResult: result) print("cancelled, error code: \(cancellationDetails.errorCode) detail: \(cancellationDetails.errorDetails!) ") print("Did you set the speech resource key and region values?"); return } } func controlTextDidChange(_ obj: Notification) { let textFiled = obj.object as! NSTextField inputText = textFiled.stringValue } }
Az AppDelegate.m-ben használja a Speech-erőforráskulcshoz és -régióhoz korábban beállított környezeti változókat.
sub = ProcessInfo.processInfo.environment["SPEECH_KEY"] region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
Az AppDelegate.m-ben opcionálisan szerepeljen egy beszédszintézis hangneve az itt látható módon:
speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural";
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Ha láthatóvá szeretné tenni a hibakeresési kimenetet, válassza a Hibakeresési terület>aktiválása konzol megtekintése>lehetőséget.
A példakód létrehozásához és futtatásához válassza a Termékfuttatás> lehetőséget a menüből, vagy válassza a Lejátszás gombot.
Fontos
Győződjön meg arról, hogy beállítja a környezeti és SPEECH_REGION
a SPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.
Miután beírt néhány szöveget, és kiválasztotta az appban a gombot, hallania kell a szintetizált hang lejátszását.
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a SpeakText
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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 (PyPi) | További minták a GitHubon |
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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.
- Windows rendszeren telepítse a Visual Studio 2015, 2017, 2019 és 2022 Microsoft Visual C++ terjeszthető verzióját a platformhoz. A csomag 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. A követelményekről további információt a Speech SDK telepítése című témakörben talá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.
Az alkalmazás létrehozása
Kövesse az alábbi lépéseket egy konzolalkalmazás létrehozásához.
Nyisson meg egy parancssori ablakot abban a mappában, ahol az új projektet szeretné. Hozzon létre egy speech_synthesis.py nevű fájlt.
Futtassa ezt a parancsot a Speech SDK telepítéséhez:
pip install azure-cognitiveservices-speech
Másolja a következő kódot a speech_synthesis.py:
import os import azure.cognitiveservices.speech as speechsdk # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True) # The neural multilingual voice can speak different languages based on the input text. speech_config.speech_synthesis_voice_name='en-US-AvaMultilingualNeural' speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config) # Get text from the console and synthesize to the default speaker. print("Enter some text that you want to speak >") text = input() speech_synthesis_result = speech_synthesizer.speak_text_async(text).get() if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted: print("Speech synthesized for text [{}]".format(text)) elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = speech_synthesis_result.cancellation_details print("Speech synthesis canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: if cancellation_details.error_details: print("Error details: {}".format(cancellation_details.error_details)) print("Did you set the speech resource key and region values?")
A beszédszintézis nyelvének módosításához cserélje le
en-US-AvaMultilingualNeural
egy másik támogatott hangra.Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom
es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.Az új konzolalkalmazás futtatásával indítsa el a beszédszintézist az alapértelmezett hangszórón.
python speech_synthesis.py
Fontos
Győződjön meg arról, hogy beállítja a környezeti és
SPEECH_REGION
aSPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.Írjon be egy szöveget, amelyet el szeretne mondani. Írja be például, hogy szívesen kipróbálom a szövegfelolvasást. Válassza az Enter billentyűt a szintetizált beszéd meghallgatásához.
Enter some text that you want to speak > I'm excited to try text to speech
Megjegyzések
További beszédszintézisi lehetőségek
Ez a rövid útmutató a speak_text_async
művelettel szintetizál egy rövid szövegblokkot, amelyet beír. A fájlból származó hosszú formátumú szöveget is használhatja, és finomabb módon szabályozhatja a hangstílusokat, a prózát és az egyéb beállításokat.
- A beszédszintézis és a beszédszintézis korrektúranyelvének (SSML) áttekintését a fájlból származó beszédszintézisről, valamint a hangstílusok, a proszódiák és egyéb beállítások finomabb szabályozásáról olvashat.
- A hosszú formátumú szövegek beszédre való szintetizálásával kapcsolatos információkért tekintse meg a batch synthesis API-t a szövegfelolvasáshoz .
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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.
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édszintézis fájlba
Egy parancssorban futtassa a következő cURL-parancsot. Másik kimeneti fájlnévre is átnevezheti output.mp3 .
curl --location --request POST "https://%SPEECH_REGION%.tts.speech.microsoft.com/cognitiveservices/v1" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: application/ssml+xml" ^
--header "X-Microsoft-OutputFormat: audio-16khz-128kbitrate-mono-mp3" ^
--header "User-Agent: curl" ^
--data-raw "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female' name='en-US-AvaMultilingualNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3
Fontos
Győződjön meg arról, hogy beállítja a környezeti és SPEECH_REGION
a SPEECH_KEY
környezeti változókat. Ha nem állítja be ezeket a változókat, a minta hibaüzenettel meghiúsul.
A megadott szövegnek egy output.mp3 nevű hangfájlba kell kimenetnek lennie.
A beszédszintézis nyelvének módosításához cserélje le en-US-AvaMultilingualNeural
egy másik támogatott hangra.
Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom es-ES-ElviraNeural
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.
További információ: Text to speech REST API.
Megjegyzések
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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.
Az Azure AI Speech használatával futtathat egy olyan alkalmazást, amely emberi szerű hangot szintetizál a szöveg olvasásához. Módosíthatja a hangot, megadhatja a kimondandó szöveget, és meghallgathatja a kimenetet a számítógép hangszóróján.
Tipp.
A Speech Studio Voice Galleryben anélkül próbálhat szövegfelolvasást, hogy regisztrálná vagy írná a kódot.
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 küldése a beszélőnek
Futtassa a következő parancsot a beszédszintézis alapértelmezett hangszóróra történő kimenetéhez. Módosíthatja a hang és a szöveg szintetizálását.
spx synthesize --text "I'm excited to try text to speech" --voice "en-US-AvaMultilingualNeural"
Ha nem állít be hangnevet, az alapértelmezett beszédhang en-US
lesz.
Minden neurális hang többnyelvű és folyékony a saját nyelvén és angolul. Ha például a bemeneti szöveg angol nyelven van , izgatott vagyok, hogy kipróbálhassam a szöveget a beszédhez , és beállítom --voice "es-ES-ElviraNeural"
, a szöveg angolul, spanyol akcentussal szólal meg. Ha a hang nem beszéli a bemeneti szöveg nyelvét, a Speech szolgáltatás nem ad ki szintetizált hangot.
Futtassa ezt a parancsot további beszédszintézisi lehetőségekről, például fájlbemenetről és kimenetről:
spx help synthesize
Megjegyzések
SSML-támogatás
A beszédszintézis korrektúranyelvével (SSML) finomabb vezérlést végezhet a hangstílusok, a próza és az egyéb beállítások felett.
OpenAI text to speech voices in Azure AI Speech
Az OpenAI szöveg és a beszédhangok is támogatottak. Lásd: OpenAI text to speech voices in Azure AI Speech and többnyelvű voices. Lecserélheti en-US-AvaMultilingualNeural
egy támogatott OpenAI-hangnévre, például en-US-FableMultilingualNeural
.
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.