Udostępnij za pośrednictwem


Szybki start: rozpoznawanie cyfrowego pisma odręcznego przy użyciu interfejsu API REST rozpoznawania pisma odręcznego i języka JavaScript

Uwaga

Interfejs API rozpoznawania pisma odręcznego zakończył swoją wersję zapoznawcza 26 sierpnia 2020 r. Jeśli masz istniejące zasoby rozpoznawania pisma odręcznego, możesz nadal z nich korzystać, dopóki usługa nie zostanie w pełni wycofana 31 stycznia 2021 r.

Użyj tego przewodnika Szybki start, aby rozpocząć korzystanie z interfejsu API rozpoznawania pisma odręcznego na cyfrowych pociągnięciach pisma odręcznego. Ta aplikacja JavaScript wysyła żądanie interfejsu API zawierające dane pociągnięcia pisma odwrotowego w formacie JSON i wyświetla odpowiedź.

Chociaż ta aplikacja jest napisana w języku JavaScript i działa w przeglądarce internetowej, interfejs API jest usługą internetową RESTful zgodną z większością języków programowania.

Zazwyczaj interfejs API jest wywoływany z cyfrowej aplikacji pisma odręcznego. Ten przewodnik Szybki start wysyła dane pociągnięcia pisma odręcznego dla następującego przykładu odręcznego z pliku JSON.

obraz tekstu odręcznego

Kod źródłowy tego przewodnika Szybki start można znaleźć w witrynie GitHub.

Wymagania wstępne

  • Przeglądarka internetowa
  • Przykładowe dane pociągnięcia pisma oddyskowego dla tego przewodnika Szybki start można znaleźć w witrynie GitHub.

Tworzenie zasobu rozpoznawania pisma odręcznego

Uwaga

Punkty końcowe dla zasobów utworzonych po 1 lipca 2019 r. używają niestandardowego formatu poddomeny pokazanego poniżej. Aby uzyskać więcej informacji i pełną listę regionalnych punktów końcowych, zobacz Niestandardowe nazwy poddomeny dla usług Cognitive Services.

Usługi Azure Cognitive Services są reprezentowane przez subskrybowane zasoby platformy Azure. Utwórz zasób rozpoznawania pisma odręcznego przy użyciu Azure Portal.

Po utworzeniu zasobu pobierz punkt końcowy i klucz, otwierając zasób na Azure Portal i klikając pozycję Szybki start.

Utwórz dwie zmienne środowiskowe:

  • INK_RECOGNITION_SUBSCRIPTION_KEY — Klucz subskrypcji do uwierzytelniania żądań.

  • INK_RECOGNITION_ENDPOINT — Punkt końcowy zasobu. Będzie to wyglądać następująco:
    https://<your-custom-subdomain>.api.cognitive.microsoft.com

Tworzenie nowej aplikacji

  1. W ulubionym środowisku IDE lub edytorze utwórz nowy .html plik. Następnie dodaj do niego podstawowy kod HTML dla kodu, który dodamy później.

    <!DOCTYPE html>
    <html>
    
        <head>
            <script type="text/javascript">
            </script>
        </head>
    
        <body>
        </body>
    
    </html>
    
  2. W tagu <body> dodaj następujący kod HTML:

    1. Dwa obszary tekstowe do wyświetlania żądania JSON i odpowiedzi.
    2. Przycisk do wywoływania recognizeInk() funkcji, która zostanie utworzona później.
    <!-- <body>-->
        <h2>Send a request to the Ink Recognition API</h2>
        <p>Request:</p>
        <textarea id="request" style="width:800px;height:300px"></textarea>
        <p>Response:</p>
        <textarea id="response" style="width:800px;height:300px"></textarea>
        <br>
        <button type="button" onclick="recognizeInk()">Recognize Ink</button>
    <!--</body>-->
    

Ładowanie przykładowych danych JSON

  1. W tagu <script> utwórz zmienną dla pliku sampleJson. Następnie utwórz funkcję JavaScript o nazwie openFile() , która otwiera eksploratora plików, aby można było wybrać plik JSON. Recognize ink Kliknięcie przycisku spowoduje wywołanie tej funkcji i rozpoczęcie odczytywania pliku.

  2. FileReader Użyj funkcji obiektuonload(), aby przetworzyć plik asynchronicznie.

    1. Zastąp wszystkie \n znaki lub \r w pliku pustym ciągiem.
    2. Użyj JSON.parse() polecenia , aby przekonwertować tekst na prawidłowy kod JSON
    3. request Zaktualizuj pole tekstowe w aplikacji. Użyj JSON.stringify() polecenia , aby sformatować ciąg JSON.
    var sampleJson = "";
    function openFile(event) {
        var input = event.target;
    
        var reader = new FileReader();
        reader.onload = function(){
            sampleJson = reader.result.replace(/(\\r\\n|\\n|\\r)/gm, "");
            sampleJson = JSON.parse(sampleJson);
            document.getElementById('request').innerHTML = JSON.stringify(sampleJson, null, 2);
        };
        reader.readAsText(input.files[0]);
    };
    

Wysyłanie żądania do interfejsu API rozpoznawania pisma odręcznego

  1. W tagu <script> utwórz funkcję o nazwie recognizeInk(). Ta funkcja później wywoła interfejs API i zaktualizuje stronę przy użyciu odpowiedzi. Dodaj kod z poniższych kroków w ramach tej funkcji.

    function recognizeInk() {
    // add the code from the below steps here 
    }
    
    1. Utwórz zmienne dla adresu URL punktu końcowego, klucza subskrypcji i przykładowego kodu JSON. Następnie utwórz XMLHttpRequest obiekt w celu wysłania żądania interfejsu API.

      // Replace the below URL with the correct one for your subscription. 
      // Your endpoint can be found in the Azure portal. For example: "https://<your-custom-subdomain>.cognitiveservices.azure.com";
      var SERVER_ADDRESS = process.env["INK_RECOGNITION_ENDPOINT"];
      var ENDPOINT_URL = SERVER_ADDRESS + "/inkrecognizer/v1.0-preview/recognize";
      var SUBSCRIPTION_KEY = process.env["INK_RECOGNITION_SUBSCRIPTION_KEY"];
      var xhttp = new XMLHttpRequest();
      
    2. Utwórz funkcję return dla XMLHttpRequest obiektu . Ta funkcja przeanalizuje odpowiedź interfejsu API z pomyślnego żądania i wyświetli ją w aplikacji.

      function returnFunction(xhttp) {
          var response = JSON.parse(xhttp.responseText);
          console.log("Response: %s ", response);
          document.getElementById('response').innerHTML = JSON.stringify(response, null, 2);
      }
      
    3. Utwórz funkcję error dla obiektu żądania. Ta funkcja rejestruje błąd w konsoli.

      function errorFunction() {
          console.log("Error: %s, Detail: %s", xhttp.status, xhttp.responseText);
      }
      
    4. Utwórz funkcję dla właściwości obiektu onreadystatechange żądania. Po zmianie stanu gotowości obiektu żądania zostaną zastosowane powyższe funkcje zwracania i błędów.

      xhttp.onreadystatechange = function () {
          if (this.readyState === 4) {
              if (this.status === 200) {
                  returnFunction(xhttp);
              } else {
                  errorFunction(xhttp);
              }
          }
      };
      
    5. Wyślij żądanie interfejsu API. Dodaj klucz subskrypcji do nagłówka Ocp-Apim-Subscription-Key i ustaw wartość na content-typeapplication/json

      xhttp.open("PUT", ENDPOINT_URL, true);
      xhttp.setRequestHeader("Ocp-Apim-Subscription-Key", SUBSCRIPTION_KEY);
      xhttp.setRequestHeader("content-type", "application/json");
      xhttp.send(JSON.stringify(sampleJson));
      };
      

Uruchom aplikację i wyświetl odpowiedź

Tę aplikację można uruchomić w przeglądarce internetowej. Pomyślna odpowiedź jest zwracana w formacie JSON. Odpowiedź JSON można również znaleźć w witrynie GitHub:

Następne kroki

Aby zobaczyć, jak działa interfejs API rozpoznawania pisma odręcznego w cyfrowej aplikacji odręcznej, zapoznaj się z następującymi przykładowymi aplikacjami w usłudze GitHub: