Membuat Keterampilan Suara Untuk Asisten Google dan Amazon Alexa

Diterbitkan: 2022-03-10
Ringkasan cepat Asisten suara melompat keluar dari teknologi baru dan ke dalam kehidupan sehari-hari. Sebagai pengembang front-end, Anda sudah memiliki keterampilan untuk membangunnya, jadi mari selami platformnya.

Selama dekade terakhir, telah terjadi pergeseran seismik ke arah antarmuka percakapan. Saat orang mencapai 'layar puncak' dan bahkan mulai mengurangi penggunaan perangkat mereka dengan fitur kesejahteraan digital yang dimasukkan ke sebagian besar sistem operasi.

Untuk mengatasi kelelahan layar, asisten suara telah memasuki pasar untuk menjadi pilihan yang lebih disukai untuk mengambil informasi dengan cepat. Statistik yang berulang dengan baik menyatakan bahwa 50% pencarian akan dilakukan dengan suara pada tahun 2020. Selain itu, seiring dengan meningkatnya adopsi, terserah kepada pengembang untuk menambahkan "Antarmuka Percakapan" dan "Asisten Suara" ke sabuk alat mereka.

Merancang Yang Tak Terlihat

Bagi banyak orang, memulai proyek UI suara (VUI) bisa seperti memasuki Unknown. Cari tahu lebih lanjut tentang pelajaran yang dipetik oleh William Merrill saat mendesain untuk suara. Baca artikel terkait →

Apa itu Antarmuka Percakapan?

Antarmuka Percakapan (kadang-kadang disingkat menjadi CUI, adalah antarmuka apa pun dalam bahasa manusia. Antarmuka ini dianggap sebagai antarmuka yang lebih alami untuk masyarakat umum daripada GUI Antarmuka Pengguna Grafis, yang biasa dibuat oleh pengembang front-end. GUI membutuhkan manusia untuk mempelajari sintaks khusus antarmuka (tombol berpikir, bilah geser, dan tarik-turun).

Perbedaan utama dalam menggunakan bahasa manusia ini membuat CUI lebih alami bagi manusia; itu membutuhkan sedikit pengetahuan dan menempatkan beban pemahaman pada perangkat.

Umumnya CUI hadir dalam dua samaran: Chatbots dan Asisten Suara. Keduanya telah melihat peningkatan besar dalam penyerapan selama dekade terakhir berkat kemajuan dalam Natural Language Processing (NLP).

Memahami Jargon Suara

(Pratinjau besar)
Kata kunci Berarti
Keterampilan/Tindakan Aplikasi suara, yang dapat memenuhi serangkaian maksud
Maksud Tindakan yang dimaksudkan untuk dipenuhi keterampilan, apa yang diinginkan pengguna untuk dilakukan keterampilan dalam menanggapi apa yang mereka katakan.
Ucapan Kalimat yang pengguna katakan, atau ucapkan.
Bangun Kata Kata atau frasa yang digunakan untuk memulai asisten suara mendengarkan, misalnya 'Hey google', 'Alexa' atau 'Hey Siri'
Konteks Potongan informasi kontekstual dalam sebuah ucapan, yang membantu keterampilan memenuhi maksud, misalnya 'hari ini', 'sekarang', 'ketika saya pulang'.
Lebih banyak setelah melompat! Lanjutkan membaca di bawah ini

Apa itu Asisten Suara?

Asisten suara adalah perangkat lunak yang mampu NLP (Natural Language Processing). Ini menerima perintah suara dan mengembalikan jawaban dalam format audio. Dalam beberapa tahun terakhir, cakupan bagaimana Anda dapat terlibat dengan asisten berkembang dan berkembang, tetapi inti dari teknologinya adalah bahasa alami, banyak komputasi, bahasa alami keluar.

Bagi mereka yang mencari sedikit lebih detail:

  1. Perangkat lunak menerima permintaan audio dari pengguna, memproses suara menjadi fonem, blok bangunan bahasa.
  2. Dengan keajaiban AI (khususnya Speech-To-Text), fonem ini diubah menjadi string dari perkiraan permintaan, ini disimpan dalam file JSON yang juga berisi informasi tambahan tentang pengguna, permintaan dan sesi.
  3. JSON kemudian diproses (biasanya di cloud) untuk mengetahui konteks dan maksud permintaan.
  4. Berdasarkan maksud, respons dikembalikan, sekali lagi dalam respons JSON yang lebih besar, baik sebagai string atau sebagai SSML (lebih lanjut tentang itu nanti)
  5. Respons diproses kembali menggunakan AI (secara alami kebalikannya - Text-To-Speech) yang kemudian dikembalikan ke pengguna.

Ada banyak hal yang terjadi di sana, yang sebagian besar tidak memerlukan pemikiran kedua. Tetapi setiap platform melakukan hal ini secara berbeda, dan itu adalah nuansa platform yang membutuhkan sedikit lebih banyak pemahaman.

(Pratinjau besar)

Perangkat Berkemampuan Suara

Persyaratan perangkat untuk dapat memiliki asisten suara yang dipanggang cukup rendah. Mereka membutuhkan Mikrofon, koneksi internet, dan Pembicara. Smart Speaker seperti Nest Mini & Echo Dot menyediakan kontrol suara low-fi semacam ini.

Berikutnya dalam peringkat adalah suara + layar, ini dikenal sebagai perangkat 'Multimodal' (lebih lanjut tentang ini nanti), dan merupakan perangkat seperti Nest Hub dan Echo Show. Karena smartphone memiliki fungsi ini, mereka juga dapat dianggap sebagai jenis perangkat berkemampuan suara Multimodal.

Keterampilan Suara

Pertama, setiap platform memiliki nama yang berbeda untuk 'Keterampilan Suara' mereka, Amazon menggunakan keterampilan, yang akan saya gunakan sebagai istilah yang dipahami secara universal. Google memilih 'Tindakan', dan Samsung memilih 'kapsul'.

Setiap platform memiliki keahliannya sendiri, seperti menanyakan waktu, cuaca, dan permainan olahraga. Keterampilan buatan pengembang (pihak ketiga) dapat dipanggil dengan frasa tertentu, atau, jika platform menyukainya, dapat dipanggil secara implisit, tanpa frasa kunci.

Doa Eksplisit : ”Ok Google, Bicaralah dengan <nama aplikasi>.”

Secara eksplisit dinyatakan keterampilan mana yang diminta:

Doa Implisit : ”Hai Google, bagaimana cuaca hari ini?”

Hal ini tersirat dari konteks permintaan layanan apa yang diinginkan pengguna.

Asisten Suara Apa yang Ada?

Di pasar barat, asisten suara sangat mirip dengan balapan tiga kuda. Apple, Google dan Amazon memiliki pendekatan yang sangat berbeda untuk asisten mereka, dan dengan demikian, menarik bagi berbagai jenis pengembang dan pelanggan.

Siri Apple

Nama Perangkat : ”Siri”

Frase Bangun : "Hai Siri"

Siri memiliki lebih dari 375 juta pengguna aktif, tetapi demi singkatnya, saya tidak akan membahas terlalu banyak detail untuk Siri. Meskipun mungkin diadopsi dengan baik secara global, dan dimasukkan ke sebagian besar perangkat Apple, itu mengharuskan pengembang untuk sudah memiliki aplikasi di salah satu platform Apple dan ditulis dengan cepat (sedangkan yang lain dapat ditulis dalam favorit semua orang: Javascript). Kecuali Anda adalah pengembang aplikasi yang ingin memperluas penawaran aplikasi mereka, saat ini Anda dapat melewati apel sampai mereka membuka platform mereka.

Asisten Google

Nama Perangkat : ”Google Home, Nest”

Frase Bangun : ”Ok Google”

Google memiliki perangkat terbanyak dari tiga besar, dengan lebih dari 1 Miliar di seluruh dunia, ini sebagian besar disebabkan oleh massa perangkat Android yang memiliki Asisten Google, sehubungan dengan speaker pintar khusus mereka, jumlahnya sedikit lebih kecil. Misi keseluruhan Google dengan asistennya adalah untuk menyenangkan pengguna, dan mereka selalu sangat baik dalam menyediakan antarmuka yang ringan dan intuitif.

Tujuan utama mereka di platform ini adalah menggunakan waktu — dengan gagasan untuk menjadi bagian rutin dari rutinitas harian pelanggan. Dengan demikian, mereka terutama berfokus pada utilitas, kesenangan keluarga, dan pengalaman yang menyenangkan.

Keterampilan yang dibangun untuk Google adalah yang terbaik saat mereka menjadi bagian dan permainan pertunangan, dengan fokus utama pada kesenangan ramah keluarga. Penambahan kanvas baru-baru ini untuk permainan adalah bukti pendekatan ini. Platform Google jauh lebih ketat untuk pengiriman keterampilan, dan dengan demikian, direktori mereka jauh lebih kecil.

Amazon Alexa

Nama Perangkat : "Amazon Fire, Amazon Echo"

Frase Bangun : "Alexa"

Amazon telah melampaui 100 juta perangkat pada tahun 2019, ini sebagian besar berasal dari penjualan speaker pintar dan layar pintar mereka, serta jangkauan 'api' atau tablet dan perangkat streaming mereka.

Keterampilan yang dibangun untuk Amazon cenderung ditujukan untuk pembelian keterampilan. Jika Anda mencari platform untuk memperluas e-commerce/layanan Anda, atau menawarkan langganan, maka Amazon adalah untuk Anda. Meskipun demikian, ISP bukanlah persyaratan untuk Keterampilan Alexa, mereka mendukung semua jenis penggunaan, dan jauh lebih terbuka untuk pengiriman.

Yang lain

Bahkan ada lebih banyak asisten Suara di luar sana, seperti Samsung Bixby, Microsoft Cortana, dan asisten suara sumber terbuka populer Mycroft. Ketiganya memiliki pengikut yang masuk akal, tetapi masih minoritas dibandingkan dengan tiga Goliat Amazon, Google dan Apple.

Membangun di Amazon Alexa

Ekosistem Amazon untuk suara telah berevolusi untuk memungkinkan pengembang membangun semua keterampilan mereka di dalam konsol Alexa, jadi sebagai contoh sederhana, saya akan menggunakan fitur bawaannya.

(Pratinjau besar)

Alexa berurusan dengan Pemrosesan Bahasa Alami dan kemudian menemukan Intent yang sesuai, yang diteruskan ke fungsi Lambda kami untuk menangani logika. Ini mengembalikan beberapa bit percakapan (SSML, teks, kartu, dan sebagainya) ke Alexa, yang mengubah bit tersebut menjadi audio dan visual untuk ditampilkan di perangkat.

Bekerja di Amazon relatif sederhana, karena memungkinkan Anda untuk membuat semua bagian dari keahlian Anda di dalam Alexa Developer Console. Fleksibilitas ada untuk menggunakan AWS atau titik akhir HTTPS, tetapi untuk keterampilan sederhana, menjalankan segala sesuatu di dalam konsol Dev sudah cukup.

Mari Membangun Keterampilan Alexa Sederhana

Buka konsol Amazon Alexa, buat akun jika Anda tidak memilikinya, dan masuk,

Klik Create Skill lalu beri nama,

Pilih custom sebagai model Anda,

dan pilih Alexa-Hosted (Node.js) untuk sumber daya backend Anda.

Setelah selesai menyediakan, Anda akan memiliki keterampilan Alexa dasar, itu akan membuat niat Anda dibangun untuk Anda, dan beberapa kode back end untuk Anda mulai.

Jika Anda mengklik HelloWorldIntent di Intent Anda, Anda akan melihat beberapa contoh ucapan yang sudah disiapkan untuk Anda, mari tambahkan yang baru di bagian atas. Keahlian kami disebut hello world, jadi tambahkan Hello World sebagai contoh ucapan. Idenya adalah untuk menangkap apa pun yang mungkin dikatakan pengguna untuk memicu maksud ini. Ini bisa berupa "Hai Dunia", "Halo Dunia", dan seterusnya.

Apa yang Terjadi Dalam Pemenuhan JS?

Jadi apa yang dilakukan kode? Berikut adalah kode default:

 const HelloWorldIntentHandler = { canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' && Alexa.getIntentName(handlerInput.requestEnvelope) === 'HelloWorldIntent'; }, handle(handlerInput) { const speakOutput = 'Hello World!'; return handlerInput.responseBuilder .speak(speakOutput) .getResponse(); } };

Ini menggunakan ask-sdk-core dan pada dasarnya membangun JSON untuk kami. canHandle tahu ask bahwa ia dapat menangani maksud, khususnya 'HelloWorldIntent'. handle mengambil input, dan membangun respons. Apa yang dihasilkan ini terlihat seperti ini:

 { "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": " Hello World! " }, "type": "_DEFAULT_RESPONSE" }, "sessionAttributes": {}, "userAgent": "ask-node/2.3.0 Node/v8.10.0" } } { "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": " Hello World! " }, "type": "_DEFAULT_RESPONSE" }, "sessionAttributes": {}, "userAgent": "ask-node/2.3.0 Node/v8.10.0" } } { "body": { "version": "1.0", "response": { "outputSpeech": { "type": "SSML", "ssml": " Hello World! " }, "type": "_DEFAULT_RESPONSE" }, "sessionAttributes": {}, "userAgent": "ask-node/2.3.0 Node/v8.10.0" } }

Kita dapat melihat bahwa speak mengeluarkan ssml di json kita, yang akan didengar pengguna seperti yang diucapkan oleh Alexa.

Membangun Untuk Asisten Google

(Pratinjau besar)

Cara paling sederhana untuk membangun Actions di Google adalah dengan menggunakan konsol AoG mereka dalam kombinasi dengan Dialogflow, Anda dapat memperluas keterampilan Anda dengan firebase, tetapi seperti tutorial Amazon Alexa, mari kita buat semuanya tetap sederhana.

Asisten Google menggunakan tiga bagian utama, AoG, yang berhubungan dengan NLP, Dialogflow, yang mengerjakan maksud Anda, dan Firebase, yang memenuhi permintaan, dan menghasilkan respons yang akan dikirim kembali ke AoG.

Sama seperti Alexa, Dialogflow memungkinkan Anda membangun fungsi langsung di dalam platform.

Mari Membangun Aksi Di Google

Ada tiga platform untuk disulap sekaligus dengan solusi Google, yang diakses oleh tiga konsol berbeda, jadi tab up!

Menyiapkan Dialogflow

Mari kita mulai dengan masuk ke konsol Dialogflow. Setelah Anda masuk, buat agen baru dari dropdown tepat di bawah logo Dialogflow.

Beri nama agen Anda, dan tambahkan 'Google Project Dropdown', sambil memilih "Buat proyek Google baru".

Klik tombol buat, dan biarkan ia melakukan keajaibannya, akan membutuhkan sedikit waktu untuk menyiapkan agen, jadi bersabarlah.

Menyiapkan Fungsi Firebase

Oke, sekarang kita bisa mulai memasukkan logika Fulfillment.

Buka tab Pemenuhan. Centang untuk mengaktifkan editor sebaris, dan gunakan cuplikan JS di bawah ini:

index.js

 'use strict'; // So that you have access to the dialogflow and conversation object const { dialogflow } = require('actions-on-google'); // So you have access to the request response stuff >> functions.https.onRequest(app) const functions = require('firebase-functions'); // Create an instance of dialogflow for your app const app = dialogflow({debug: true}); // Build an intent to be fulfilled by firebase, // the name is the name of the intent that dialogflow passes over app.intent('Default Welcome Intent', (conv) => { // Any extra logic goes here for the intent, before returning a response for firebase to deal with return conv.ask(`Welcome to a firebase fulfillment`); }); // Finally we export as dialogflowFirebaseFulfillment so the inline editor knows to use it exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

package.json

 { "name": "functions", "description": "Cloud Functions for Firebase", "scripts": { "lint": "eslint .", "serve": "firebase serve --only functions", "shell": "firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "10" }, "dependencies": { "actions-on-google": "^2.12.0", "firebase-admin": "~7.0.0", "firebase-functions": "^3.3.0" }, "devDependencies": { "eslint": "^5.12.0", "eslint-plugin-promise": "^4.0.1", "firebase-functions-test": "^0.1.6" }, "private": true }

Sekarang kembali ke maksud Anda, buka Default Selamat Datang Intent, dan gulir ke bawah ke pemenuhan, pastikan 'Aktifkan panggilan webhook untuk maksud ini' dicentang untuk setiap maksud yang ingin Anda penuhi dengan javascript. Tekan Simpan.

(Pratinjau besar)

Menyiapkan AoG

Kami semakin dekat dengan garis finis sekarang. Buka Tab Integrasi, dan klik Pengaturan Integrasi di Opsi Asisten Google di bagian atas. Ini akan membuka modal, jadi mari kita klik tes, yang akan membuat Dialogflow Anda terintegrasi dengan Google, dan membuka jendela tes di Actions on Google.

Di jendela pengujian, kita dapat mengklik Bicara dengan aplikasi pengujian saya (Kami akan mengubahnya dalam sedetik), dan voila, kami memiliki pesan dari javascript kami yang ditampilkan pada tes asisten google.

Kita dapat mengubah nama asisten di tab Kembangkan, di bagian atas.

Jadi Apa Yang Terjadi Dalam Pemenuhan JS?

Pertama, kami menggunakan dua paket npm, actions-on-google yang menyediakan semua pemenuhan yang dibutuhkan AoG dan Dialogflow, dan kedua firebase-functions, yang Anda tebak, berisi helper untuk firebase.

Kami kemudian membuat 'aplikasi' yang merupakan objek yang berisi semua maksud kami.

Setiap maksud yang dibuat melewati 'conv' yang merupakan objek percakapan yang dikirim oleh Actions On Google. Kami dapat menggunakan konten conv untuk mendeteksi informasi tentang interaksi sebelumnya dengan pengguna (seperti ID mereka dan informasi tentang sesi mereka dengan kami).

Kami mengembalikan 'objek conv.ask', yang berisi pesan pengembalian kami kepada pengguna, siap untuk mereka tanggapi dengan maksud lain. Kita bisa menggunakan 'conv.close' untuk mengakhiri percakapan jika kita ingin mengakhiri percakapan di sana.

Terakhir, kami membungkus semuanya dalam fungsi HTTPS firebase, yang berhubungan dengan logika permintaan-respons sisi server untuk kami.

Sekali lagi, jika kita melihat respons yang dihasilkan:

 { "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Welcome to a firebase fulfillment" } } ] } } } }

Kita dapat melihat bahwa conv.ask telah memasukkan teksnya ke dalam area textToSpeech . Jika kami memilih conv.close , expectUserResponse akan disetel ke false dan percakapan akan ditutup setelah pesan terkirim.

Pembuat Suara Pihak Ketiga

Sama seperti industri aplikasi, saat suara memperoleh daya tarik, alat pihak ke-3 mulai bermunculan dalam upaya untuk meringankan beban pengembang, memungkinkan mereka untuk membangun satu kali penerapan dua kali.

Jovo dan Voiceflow saat ini adalah dua yang paling populer, terutama sejak akuisisi PullString oleh Apple. Setiap platform menawarkan tingkat abstraksi yang berbeda, jadi itu benar-benar tergantung pada seberapa disederhanakan antarmuka Anda.

Memperluas Keterampilan Anda

Sekarang setelah Anda menguasai keterampilan dasar 'Hello World', ada banyak sekali lonceng dan peluit yang dapat ditambahkan ke keterampilan Anda. Ini adalah ceri di atas kue Asisten Suara dan akan memberi pengguna Anda banyak nilai ekstra, yang mengarah ke kebiasaan berulang, dan peluang komersial potensial.

SSML

SSML adalah singkatan dari speech synthesis markup language dan beroperasi dengan sintaks yang mirip dengan HTML, perbedaan utamanya adalah Anda membangun respons lisan, bukan konten di halaman web.

'SSML' sebagai istilah sedikit menyesatkan, ia dapat melakukan lebih dari sekadar sintesis ucapan! Anda dapat membuat suara berjalan secara paralel, Anda dapat menyertakan suara suasana, percakapan (layak untuk didengarkan dengan benar, pikirkan emoji untuk frasa terkenal), dan musik.

Kapan Saya Harus Menggunakan SSL?

SSL sangat bagus; itu membuat pengalaman yang jauh lebih menarik bagi pengguna, tetapi apa yang juga terjadi, adalah mengurangi fleksibilitas output audio. Saya sarankan menggunakannya untuk area bicara yang lebih statis. Anda dapat menggunakan variabel di dalamnya untuk nama dll, tetapi kecuali jika Anda bermaksud membangun generator SSML, sebagian besar SSML akan menjadi sangat statis.

Mulailah dengan pidato sederhana dalam keahlian Anda, dan setelah selesai, tingkatkan area yang lebih statis dengan SSML, tetapi perbaiki inti Anda sebelum beralih ke lonceng dan peluit. Meskipun demikian, sebuah laporan baru-baru ini mengatakan 71% pengguna lebih menyukai suara manusia (nyata) daripada suara yang disintesis, jadi jika Anda memiliki fasilitas untuk melakukannya, keluarlah dan lakukanlah!

(Pratinjau besar)

Dalam Pembelian Keterampilan

Pembelian dalam keterampilan (atau ISP) mirip dengan konsep pembelian dalam aplikasi. Keterampilan cenderung gratis, tetapi beberapa memungkinkan untuk pembelian konten/langganan 'premium' di dalam aplikasi, ini dapat meningkatkan pengalaman bagi pengguna, membuka kunci level baru pada game, atau mengizinkan akses ke konten berpenghalang berbayar.

multimoda

Respons multimodal mencakup lebih dari sekadar suara, di sinilah asisten suara benar-benar dapat bersinar dengan visual pelengkap pada perangkat yang mendukungnya. Definisi pengalaman multimodal jauh lebih luas dan pada dasarnya berarti banyak masukan (Keyboard, Mouse, Layar Sentuh, Suara, dan sebagainya.).

Keterampilan multimodal dimaksudkan untuk melengkapi pengalaman suara inti, memberikan informasi pelengkap tambahan untuk meningkatkan UX. Saat membangun pengalaman multimodal, ingatlah bahwa suara adalah pembawa informasi utama. Banyak perangkat tidak memiliki layar, jadi keahlian Anda masih perlu bekerja tanpa layar, jadi pastikan untuk menguji dengan beberapa jenis perangkat; baik nyata atau di simulator.

(Pratinjau besar)

Multibahasa

Keterampilan multibahasa adalah keterampilan yang bekerja dalam berbagai bahasa dan membuka keterampilan Anda ke berbagai pasar.

Kompleksitas membuat keterampilan Anda multibahasa tergantung pada seberapa dinamis respons Anda. Keterampilan dengan respons yang relatif statis, misalnya mengembalikan frasa yang sama setiap kali, atau hanya menggunakan sekumpulan kecil frasa, jauh lebih mudah dibuat multibahasa daripada keterampilan dinamis yang meluas.

Trik dengan multibahasa adalah memiliki mitra penerjemah yang dapat dipercaya, baik itu melalui agen atau penerjemah di Fiverr. Anda harus bisa mempercayai terjemahan yang diberikan, terutama jika Anda tidak mengerti bahasa yang diterjemahkan. Google translate tidak akan memotong mustard di sini!

Kesimpulan

Jika ada waktu untuk masuk ke industri suara, itu akan terjadi sekarang. Baik di masa jayanya dan masa pertumbuhannya, serta sembilan besar, menghabiskan miliaran untuk menumbuhkannya dan membawa asisten suara ke rumah semua orang dan rutinitas sehari-hari.

Memilih platform mana yang akan digunakan bisa jadi rumit, tetapi berdasarkan apa yang ingin Anda bangun, platform yang akan digunakan harus bersinar atau, jika gagal, gunakan alat pihak ketiga untuk melindungi taruhan Anda dan membangun di berbagai platform, terutama jika keahlian Anda kurang rumit dengan lebih sedikit bagian yang bergerak.

Saya, untuk satu, bersemangat tentang masa depan suara karena menjadi di mana-mana; ketergantungan layar akan berkurang dan pelanggan akan dapat berinteraksi secara alami dengan asisten mereka. Tapi pertama-tama, terserah kita untuk membangun keterampilan yang diinginkan orang dari asisten mereka.