Azure Cognitives Services – OCR und Sprachausgabe

Ich habe ein größeres PDF zum Lesen bekommen und fragte mich, wie ich Zeit dafür finden kann. Da ich viel mit dem Auto unterwegs bin, war der erste Gedanke: Wieso gibt es das nicht als „Hörbuch“?

Idee: Da gibt es doch die Azure Cognitive Services, Also machen Axel und ich uns ans Werk.
Dazu verwenden wir:
1. Maschinelles Sehen als OCR, um den Text zu bekommen.
2. Speech-Dienst, um den Text in einen Audio Stream umzuwandeln

Mittlerweile muss man sich in Azure eine Ressource dazu anlegen. Also brauchen wir eine  „Computer Vision“ und eine „Speech“ Ressource,  um uns jeweils einen API Key zu generieren.
Dazu einfach auf das „+ Create a resource“ klicken und dann die Suche benutzen.
Eine ausführliche Anleitung ist hier.

Unser Azure Ressource für Speech ist wie auf dem Bild definiert.

In der SpeechMe Konfiguration den Key dann einfach unter „1 Grab your keys“ kopieren

Wir brauchen immer nur den ersten Key

sourcecode language="csharp"]
private const string AzureOcrKey = "3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb";
private const string AzureSpeechKey = "8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8";
[/sourcecode]

Die Computer Vision API – v2.0  arbeitet derzeit nur mit Bildern, daher müssen wir das PDF mit freepdfconvert in Bilder umwandeln.

Nachdem wir den Text aus den Bildern ausgelesen haben, müssen wir uns jetzt noch eine Audio Datei erzeugen.

Nun noch die URL in der Speech-Service Rest-Api Liste finden, eintragen und schon können  wir mit  dem TTS Service die PDF in eine Audio  Datei umwandeln.

 
const string UriBaseOcr = "https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/ocr";
const string UriBase = "https://westeurope.api.cognitive.microsoft.com/sts/v1.0/issueToken";
const string RequestUri = "https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1";

Der Code liegt wie immer auf GitHub

1 Gedanke zu „Azure Cognitives Services – OCR und Sprachausgabe

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert