Bagikan melalui


Xamarin.Forms dan Pengenalan Azure Cognitive Services

Microsoft Cognitive Services adalah sekumpulan API, SDK, dan layanan yang tersedia bagi pengembang untuk membuat aplikasi mereka lebih cerdas dengan menambahkan fitur seperti pengenalan wajah, pengenalan ucapan, dan pemahaman bahasa. Artikel ini menyediakan pengenalan aplikasi sampel yang menunjukkan cara memanggil beberapa API Microsoft Cognitive Service.

Gambaran Umum

Sampel yang menyertainya adalah aplikasi daftar todo yang menyediakan fungsionalitas untuk:

  • Menampilkan daftar tugas.
  • Tambahkan dan edit tugas melalui keyboard lunak, atau dengan melakukan pengenalan ucapan dengan Microsoft Speech API.
  • Tugas pemeriksaan ejaan menggunakan Bing Spell Check API. Untuk informasi selengkapnya, lihat Pemeriksaan Ejaan menggunakan Bing Spell Check API.
  • Terjemahkan tugas dari bahasa Inggris ke Bahasa Jerman menggunakan API Penerjemah. Untuk informasi selengkapnya, lihat Terjemahan Teks menggunakan API Penerjemah.
  • Menghapus tugas.
  • Atur status tugas ke 'selesai'.

Peringatan

Bing Speech API tidak digunakan lagi demi Azure Speech Service. Untuk sampel yang didedikasikan untuk Azure Speech Service, lihat Pengenalan ucapan dengan API Layanan Ucapan.

Tugas disimpan dalam database SQLite lokal. Untuk informasi selengkapnya tentang menggunakan database SQLite lokal, lihat Bekerja dengan Database Lokal.

TodoListPage ditampilkan ketika aplikasi diluncurkan. Halaman ini menampilkan daftar tugas apa pun yang disimpan dalam database lokal, dan memungkinkan pengguna untuk membuat tugas baru atau menilai aplikasi:

TodoListPage

Item baru dapat dibuat dengan mengklik tombol + , yang menavigasi ke TodoItemPage. Halaman ini juga dapat dinavigasi dengan memilih tugas:

TodoItemPage

memungkinkan TodoItemPage tugas dibuat, diedit, diperiksa ejaannya, diterjemahkan, disimpan, dan dihapus. Pengenalan ucapan dapat digunakan untuk membuat atau mengedit tugas. Ini dicapai dengan menekan tombol mikrofon untuk mulai merekam, dan dengan menekan tombol yang sama untuk kedua kalinya untuk menghentikan perekaman, yang mengirim rekaman ke Bing Speech Recognition API.

Memahami anatomi aplikasi

Proyek kode bersama untuk aplikasi sampel terdiri dari lima folder utama:

Folder Tujuan
Model Berisi kelas model data untuk aplikasi. Ini termasuk TodoItem kelas , yang memodelkan satu item data yang digunakan oleh aplikasi. Folder ini juga menyertakan kelas yang digunakan untuk memodelkan respons JSON yang dikembalikan dari API Microsoft Cognitive Service yang berbeda.
Repositori ITodoItemRepository Berisi antarmuka dan TodoItemRepository kelas yang digunakan untuk melakukan operasi database.
Layanan Berisi antarmuka dan kelas yang digunakan untuk mengakses API Microsoft Cognitive Service yang berbeda, bersama dengan antarmuka yang digunakan oleh DependencyService kelas untuk menemukan kelas yang mengimplementasikan antarmuka dalam proyek platform.
Utils Timer Berisi kelas , yang digunakan oleh AuthenticationService kelas untuk memperbarui token akses JWT setiap 9 menit.
Tampilan Berisi halaman untuk aplikasi.

Proyek kode bersama juga berisi beberapa file penting:

File Tujuan
Constants.cs Kelas Constants , yang menentukan kunci API dan titik akhir untuk API Microsoft Cognitive Service yang dipanggil. Konstanta kunci API memerlukan pembaruan untuk mengakses API Cognitive Service yang berbeda.
App.xaml.cs Kelas App bertanggung jawab untuk membuat instans halaman pertama yang akan ditampilkan oleh aplikasi di setiap platform, dan TodoManager kelas yang digunakan untuk memanggil operasi database.

Paket NuGet

Aplikasi sampel menggunakan paket NuGet berikut:

  • Newtonsoft.Json – menyediakan kerangka kerja JSON untuk .NET.
  • PCLStorage – menyediakan satu set API IO file lokal lintas platform.
  • sqlite-net-pcl – menyediakan penyimpanan database SQLite.
  • Xam.Plugin.Media – menyediakan pengambilan foto lintas platform dan memilih API.

Selain itu, paket NuGet ini juga menginstal dependensi mereka sendiri.

Membuat model data

Aplikasi sampel menggunakan TodoItem kelas untuk memodelkan data yang ditampilkan dan disimpan dalam database SQLite lokal. Contoh kode berikut menunjukkan TodoItem kelas :

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

Properti ID ini digunakan untuk mengidentifikasi setiap TodoItem instans secara unik, dan didekorasi dengan atribut SQLite yang menjadikan properti kunci primer yang ditambahkan secara otomatis dalam database.

Memanggil operasi database

Kelas TodoItemRepository menerapkan operasi database, dan instans kelas dapat diakses melalui App.TodoManager properti . Kelas ini TodoItemRepository menyediakan metode berikut untuk memanggil operasi database:

  • GetAllItemsAsync – mengambil semua item dari database SQLite lokal.
  • GetItemAsync – mengambil item tertentu dari database SQLite lokal.
  • SaveItemAsync – membuat atau memperbarui item di database SQLite lokal.
  • DeleteItemAsync – menghapus item yang ditentukan dari database SQLite lokal.

Implementasi proyek platform

Folder Services dalam proyek kode bersama berisi IFileHelper antarmuka dan IAudioRecorderService yang digunakan oleh DependencyService kelas untuk menemukan kelas yang mengimplementasikan antarmuka dalam proyek platform.

Antarmuka IFileHelper diimplementasikan oleh FileHelper kelas di setiap proyek platform. Kelas ini terdiri dari satu metode, GetLocalFilePath, yang mengembalikan jalur file lokal untuk menyimpan database SQLite.

Antarmuka IAudioRecorderService diimplementasikan oleh AudioRecorderService kelas di setiap proyek platform. Kelas ini terdiri dari StartRecordingmetode , StopRecording, dan pendukung, yang menggunakan API platform untuk merekam audio dari mikrofon perangkat dan menyimpannya sebagai file wav. Di iOS, AudioRecorderService menggunakan AVFoundation API untuk merekam audio. Di Android, AudioRecordService menggunakan AudioRecord API untuk merekam audio. Pada Platform Windows Universal (UWP), AudioRecorderService menggunakan AudioGraph API untuk merekam audio.

Memanggil layanan kognitif

Aplikasi sampel memanggil Microsoft Cognitive Services berikut: