Benutzer mit den meisten Antworten
Text-to-Speach - Beispielcode funktioniert nicht

Frage
-
Ich habe den Code von hier zum erhalten eines Tokens (C#) versucht:
https://docs.microsoft.com/de-de/azure/cognitive-services/speech-service/rest-text-to-speech
Leider kommt keine Rückmeldung beim Aufurf der Zeile:
var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
Beim Aufurf von
https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken
Es kommt der 404 Fehler, habe eher mit was anderem gerechnet und frage mich ob die Urls stimmen!?
- Bearbeitet coderrmedia Sonntag, 5. Januar 2020 18:13
Antworten
-
Moin,
ich möchte Dir nicht das Herz brechen, aber der folgende Code als einfache C#-Konsolen-App gibt den Token aus:
using System; using System.Threading.Tasks; using System.Net.Http; namespace ConsoleApp3 { public class Authentication { public static readonly string FetchTokenUri = "https://westeurope.api.cognitive.microsoft.com/sts/v1.0/issuetoken"; private string subscriptionKey; private string token; public Authentication(string subscriptionKey) { this.subscriptionKey = subscriptionKey; this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result; } public string GetAccessToken() { return this.token; } private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey) { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); UriBuilder uriBuilder = new UriBuilder(fetchUri); var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null); Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri); return await result.Content.ReadAsStringAsync(); } } } class Program { static void Main(string[] args) { Authentication auth = new Authentication("<KEY AUS PORTAL>"); Console.WriteLine(auth.GetAccessToken()); } } }
Evgenij Smirnov
- Bearbeitet Evgenij Smirnov Montag, 6. Januar 2020 18:21
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Januar 2020 14:40
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 20. Januar 2020 15:07
-
Herz hast mir nicht gebrochen, bin aber nun so richtig verwirrt!?
1. Windos Forms = Passiert gar nichts nach dem PostAsync
2. PowerShell = 401 (dies wohlgemerkt auf 2 Rechnern sogar getestet)
3. Konsolen-App = ich bekomme einen Token
Ich habe 1. nach 3. kopiert.
Also das das bisher kurioseste was ich bisher je hatte. Wollte das eigentlich in Windows Form machen, aber geht auch als Konsolen-App.
Danke
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Januar 2020 14:40
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 20. Januar 2020 15:07
Alle Antworten
-
Moin,
ist Deine Subscription denn auch für US West?
Im Sommer hat das noch wie beschrieben funktioniert :-) Seitdem wurde zwar Bing Speech abgeschaltet, aber die Speech API ist ja ein anderer Dienst...
Evgenij Smirnov
-
Hallo,ist egal welche API Url ich nutze, bei allen das gleiche, aber es ist diese, die mir angezeigt werden bei den Keys die ich nutzen kann:
Unified Speech Services for free trials on Azure.com. 5,000 transactions per month, 20 per minute. Trial keys will expire after a 30 day period, after which you can create a Cognitive Services account on Azure portal. As part of the bundle, this trial only includes the following: Speech-to-Text, Text-to-Speech, Speech Translation.
Endpoint: https://westus.api.cognitive.microsoft.com/sts/v1.0
Key 1: XXXXXXXXXXXXXXXXXXXX
Key 2: XXXXXXXXXXXXXXXX
-
Moin,
also der folgende PowerShell-Code hat ein valides OAuthToken zurückgeliefert:
$FetchTokenHeader = @{ 'Content-type'='application/x-www-form-urlencoded'; 'Content-Length'= '0'; 'Ocp-Apim-Subscription-Key' = 'Key aus dem Portal' } $OAuthToken = Invoke-RestMethod -Method POST -Uri https://westeurope.api.cognitive.microsoft.com/sts/v1.0/issuetoken -Headers $FetchTokenHeader $OAuthToken
Evgenij Smirnov
-
Danke, da bekomme ich wenigstens 401, aber wieso ist mein Key falsch, das habe ich doch direkt von der Seite kopiert, weder Key1 noch key2 geht :(
Und wieso bekomme ich über C# gar keine Rückantwort, selbst nach Minuten tut sich nichts!?
Das grade echt frustrierend :(
-
Danke, da bekomme ich wenigstens 401, aber wieso ist mein Key falsch, das habe ich doch direkt von der Seite kopiert, weder Key1 noch key2 geht :(
Evgenij Smirnov
-
Moin,
ich möchte Dir nicht das Herz brechen, aber der folgende Code als einfache C#-Konsolen-App gibt den Token aus:
using System; using System.Threading.Tasks; using System.Net.Http; namespace ConsoleApp3 { public class Authentication { public static readonly string FetchTokenUri = "https://westeurope.api.cognitive.microsoft.com/sts/v1.0/issuetoken"; private string subscriptionKey; private string token; public Authentication(string subscriptionKey) { this.subscriptionKey = subscriptionKey; this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result; } public string GetAccessToken() { return this.token; } private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey) { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); UriBuilder uriBuilder = new UriBuilder(fetchUri); var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null); Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri); return await result.Content.ReadAsStringAsync(); } } } class Program { static void Main(string[] args) { Authentication auth = new Authentication("<KEY AUS PORTAL>"); Console.WriteLine(auth.GetAccessToken()); } } }
Evgenij Smirnov
- Bearbeitet Evgenij Smirnov Montag, 6. Januar 2020 18:21
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Januar 2020 14:40
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 20. Januar 2020 15:07
-
Herz hast mir nicht gebrochen, bin aber nun so richtig verwirrt!?
1. Windos Forms = Passiert gar nichts nach dem PostAsync
2. PowerShell = 401 (dies wohlgemerkt auf 2 Rechnern sogar getestet)
3. Konsolen-App = ich bekomme einen Token
Ich habe 1. nach 3. kopiert.
Also das das bisher kurioseste was ich bisher je hatte. Wollte das eigentlich in Windows Form machen, aber geht auch als Konsolen-App.
Danke
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Januar 2020 14:40
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 20. Januar 2020 15:07