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:
Düğmesine tıklayarak + yeni öğeler oluşturulabilir ve bu öğe öğesine TodoItemPage
gider. Bu sayfaya bir görev seçilerek de gidilebilir:
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, GetLocalFilePath
SQLite 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 StartRecording
ses kaydetmek ve wav dosyası olarak depolamak için platform API'lerini kullanan , StopRecording
ve 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:
- Microsoft Konuşma API'si. Daha fazla bilgi için bkz . Microsoft Konuşma Tanıma API'sini kullanarak Konuşma Tanıma.
- Bing Yazım Denetimi API'si. Daha fazla bilgi için bkz . Bing Yazım Denetimi API'sini kullanarak Yazım Denetimi.
- ÇEVIRI API'sini seçin. Daha fazla bilgi için bkz. Çeviri API'sini kullanarak Metin Çevirisi.