Xamarin.Forms ve Azure Bilişsel Hizmetlere Giriş

Microsoft Bilişsel Hizmetler, geliştiricilerin yüz tanıma, konuşma tanıma ve dil anlama gibi özellikler ekleyerek uygulamalarını daha akıllı hale getirmek için kullanabileceği bir DIZI API, SDK ve hizmettir. Bu makalede, Bazı Microsoft Bilişsel Hizmet API'lerinin nasıl çağrıldığını gösteren örnek uygulamaya giriş bilgileri sağlanmaktadır.

Genel bakış

Eşlik eden örnek, şu işlevleri sağlayan bir yapılacaklar listesi uygulamasıdır:

  • Görevlerin listesini görüntüleyin.
  • Yumuşak klavye aracılığıyla veya Microsoft Konuşma TANıMA API'siyle konuşma tanıma gerçekleştirerek görevleri ekleyin ve düzenleyin.
  • Bing Yazım Denetimi API'sini kullanarak yazım denetimi görevleri. Daha fazla bilgi için bkz . Bing Yazım Denetimi API'sini kullanarak Yazım Denetimi.
  • Çeviri API'sini kullanarak görevleri İngilizceden Almancaya çevirin. Daha fazla bilgi için bkz. Çeviri API'sini kullanarak Metin Çevirisi.
  • Görevleri silin.
  • Görevin durumunu 'bitti' olarak ayarlayın.

Uyarı

Bing Konuşma API'si, Azure Konuşma Tanıma Hizmeti tarafından kullanım dışı bırakılmıştır. Azure Konuşma Tanıma Hizmeti'ne ayrılmış bir örnek için bkz . Konuşma Tanıma Hizmeti API'siyle konuşma tanıma.

Görevler yerel bir SQLite veritabanında depolanır. Yerel SQLite veritabanı kullanma hakkında daha fazla bilgi için bkz . Yerel Veritabanı ile çalışma.

TodoListPage, uygulama başlatıldığında görüntülenir. Bu sayfa, yerel veritabanında depolanan görevlerin listesini görüntüler ve kullanıcının yeni bir görev oluşturmasına veya uygulamayı derecelendirmesine izin verir:

TodoListPage

Düğmesine tıklayarak + yeni öğeler oluşturulabilir ve bu öğe öğesine TodoItemPagegider. Bu sayfaya bir görev seçilerek de gidilebilir:

TodoItemPage

TodoItemPage görevlerin oluşturulmasına, düzenlenmesine, yazım denetimi yapılmasına, çevrilmesini, kaydedilmesine ve silinmesine olanak tanır. Konuşma tanıma, görev oluşturmak veya düzenlemek için kullanılabilir. Bu, kaydı başlatmak için mikrofon düğmesine basılarak ve kaydı durdurmak için aynı düğmeye ikinci kez basılarak ve bu da kaydı Bing Konuşma Tanıma API'sine göndererek elde edilir.

Uygulama anatomisini anlama

Örnek uygulama için paylaşılan kod projesi beş ana klasörden oluşur:

Klasör Purpose
Modeller Uygulamanın veri modeli sınıflarını içerir. Bu, uygulama tarafından kullanılan tek bir veri öğesini modelleyen sınıfını içerir TodoItem . Klasör, farklı Microsoft Bilişsel Hizmet API'lerinden döndürülen JSON yanıtlarını modellemek için kullanılan sınıfları da içerir.
Depolar ITodoItemRepository Veritabanı işlemlerini gerçekleştirmek için kullanılan arabirimi ve TodoItemRepository sınıfı içerir.
Hizmetler Platform projelerinde arabirimleri uygulayan sınıfları bulmak için sınıfı tarafından DependencyService kullanılan arabirimlerle birlikte farklı Microsoft Bilişsel Hizmet API'lerine erişmek için kullanılan arabirimleri ve sınıfları içerir.
Utils Timer Sınıfı tarafından JWT erişim belirtecini AuthenticationService 9 dakikada bir yenilemek için kullanılan sınıfını içerir.
Görünümler Uygulamanın sayfalarını içerir.

Paylaşılan kod projesi bazı önemli dosyaları da içerir:

Dosya Purpose
Constants.cs Çağrılan Microsoft Bilişsel Hizmet API'leri Constants için API anahtarlarını ve uç noktalarını belirten sınıfı. API anahtar sabitleri, farklı Bilişsel Hizmet API'lerine erişmek için güncelleştirme gerektirir.
App.xaml.cs sınıfı App , her platformda uygulama tarafından görüntülenecek ilk sayfanın ve veritabanı işlemlerini çağırmak için kullanılan sınıfın örneğini TodoManager oluşturmakla sorumludur.

NuGet paketleri

Örnek uygulama aşağıdaki NuGet paketlerini kullanır:

  • Newtonsoft.Json – .NET için bir JSON çerçevesi sağlar.
  • PCLStorage – bir dizi platformlar arası yerel dosya GÇ API'leri sağlar.
  • sqlite-net-pcl – SQLite veritabanı depolama alanı sağlar.
  • Xam.Plugin.Media – PLATFORMlar arası fotoğraf çekme ve API'leri seçme olanağı sağlar.

Ayrıca, bu NuGet paketleri kendi bağımlılıklarını da yükler.

Verileri modelleme

Örnek uygulama, yerel SQLite veritabanında görüntülenen ve depolanan verileri modellemek için sınıfını kullanır TodoItem . Aşağıdaki kod örneği sınıfını TodoItem gösterir:

public class TodoItem
{
  [PrimaryKey, AutoIncrement]
  public int ID { get; set; }
  public string Name { get; set; }
  public bool Done { get; set; }
}

ID özelliği her örneği benzersiz olarak tanımlamak TodoItem için kullanılır ve özelliği veritabanında otomatik olarak artan birincil anahtar haline getiren SQLite öznitelikleriyle dekore edilmiştir.

Veritabanı işlemlerini çağırma

TodoItemRepository sınıfı veritabanı işlemlerini uygular ve sınıfın bir örneğine özelliği aracılığıyla App.TodoManager erişilebilir. sınıfı, TodoItemRepository veritabanı işlemlerini çağırmak için aşağıdaki yöntemleri sağlar:

  • GetAllItemsAsync – tüm öğeleri yerel SQLite veritabanından alır.
  • GetItemAsync – yerel SQLite veritabanından belirtilen bir öğeyi alır.
  • SaveItemAsync – yerel SQLite veritabanında bir öğe oluşturur veya güncelleştirir.
  • DeleteItemAsync – Belirtilen öğeyi yerel SQLite veritabanından siler.

Platform projesi uygulamaları

Services Paylaşılan kod projesindeki klasör, platform projelerinde arabirimleri uygulayan sınıfları bulmak için sınıfı tarafından DependencyService kullanılan ve IAudioRecorderService arabirimlerini içerirIFileHelper.

IFileHelper Arabirim, her platform projesinde FileHelper sınıfı tarafından uygulanır. Bu sınıf, GetLocalFilePathSQLite veritabanını depolamak için yerel bir dosya yolu döndüren tek bir yöntemden oluşur.

IAudioRecorderService Arabirim, her platform projesinde AudioRecorderService sınıfı tarafından uygulanır. Bu sınıf, cihazın mikrofonundan StartRecordingses kaydetmek ve wav dosyası olarak depolamak için platform API'lerini kullanan , StopRecordingve destekleyici yöntemlerden oluşur. iOS'ta, AudioRecorderService ses kaydetmek için API'yi kullanır AVFoundation . Android'de AudioRecordService , ses kaydetmek için API'yi kullanır AudioRecord . Evrensel Windows Platformu (UWP) üzerindeAudioRecorderService, ses kaydetmek için API'yi kullanırAudioGraph.

Bilişsel hizmetleri çağırma

Örnek uygulama aşağıdaki Microsoft Bilişsel Hizmetler'i çağırır: