Skip to main content

Tạo ứng dụng AI đầu tiên - a piece of cake

Thư viện ngày gió to, nhìn quanh được 4 chú sinh viên già, quen mặt. Canada dạo này nát thật. Từ 2024, chính phủ hạn chế dân tạm cư, du học sinh quốc tế thưa thớt hẳn.

Tui mất 1h30 để cài đặt và configure viết ra ứng dụng đầu tiên để chọc đến các API của AI platform.

Bài toàn tương đối đơn giản:

"Tui hỏi bằng miệng, AI trả lời"

Ơ hay, thế bình thường khi dùng AI thì không thế à? Haha, bình thường bạn dùng sẵn app của nó, còn đây tui đang tự build cái app đó để customize theo cái ý đồ riêng của tôi để chơi với con robot.

Phân tích flow chương trình về mặt kỹ thuật:

Bạn nói => Module chuyển từ giọng nói sang text => cho cái text này vào AI bằng cách gọi API của AI => nhận response và hiển thị lên màn hình console

Okay, nghe có vẻ đơn giản, giờ ta bắt tay vào làm theo thought process

1. Chọn ngôn ngữ nào?

Mình muốn ăn liền nên python là chuẩn bài = > Python 3.8+

2. Dùng module nào để convert?

Cái nào lightweight rẻ tiền thì dùng, miễn phí càng tốt =>

Để truy cập được vào microphone:

PyAudio – for accessing the microphone.

Để convert giọng nói sang text

Speech Recognition – for converting voice to text.

Thằng này ngon, dùng phát ăn ngay

Whisper

Thằng này thì rẻ và kết hợp được luôn với AI model như OpenRouter

Cơ mà có cái dở là bước làm nó hơi khác. Nó sẽ thu âm thanh vào file wav lưu tại local, sau đó dùng một model AI để transcribe audio sang text.

3. AI thì chọn thằng nào?

Sau một hồi do research thì go with OpenRouter. Nó rẻ, và mình fix được mấy lỗi linh tinh ngu ngốc do AI generate code ra.

Tada.... đây là sản phẩm đầu ra.


Trông dễ vậy thôi cơ mà cũng phải bẩy bẩy bốn chín cái cấu hình và setup nữa nhé các bạn trẻ.

Game là dễ.

Giờ đi làm trận fifa07 tự thưởng cho ouput ngày hôm nay

What's next?

Sau đó đến lượt tống thêm Text to speech để nó nói, rồi tống dữ liệu này ra đường serial bắn sang con arduino điều khiển cái đầu robot. 

Xin lỗi các bạn, tôi là dân làm embedded software mà, chơi với PC không thỏa mãn cái thú táy máy của tôi. Tiếp theo là tôi sẽ tìm cách nhúng cái app này vào mấy cái hardware platform như raspberry pi/ jetson nano .. ahihi






Comments

Popular posts from this blog

[Git] Handle trailing space when patching with git

After complete coding one module in development branch. Next phase is merging. Obviously, you can merge source code automatically without no errors happen. However, life is not dream. Create a patch git diff HEAD > newTariff.patch Apply patch git apply newTariff.patch then problem happens Problem git apply newTariff.patch:106: trailing whitespace. patch does not apply Route cause: Nguyên nhân: Do trong source code có những dấu space thừa (ô vuông màu đỏ hình dưới) Some whitespaces is existed in your patch. (red area in below pictures) Fix Clean white space and patch again. Cách khắc phục Xóa những dấu space này đi và thực hiện patch lại Make up after complete coding. Find and clean whitespace before create patch file. Sửa sau khi code xong Kiểm tra sau khi code xong có lỗi này không git diff HEAD --check Prevent whitespace by manually when typing source code Sửa ngay khi đang code =>Bật chức năng hiển thị các dấu whitespace, hoặc remove trailing ...

[GTK] Example of using GtkBox with label and button

[1]Source code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include <gtk/gtk.h> void on_window_closed (GtkWidget * window, gpointer data) { gtk_main_quit(); } static void destroy (GtkWidget * widget, gpointer data) { gtk_main_quit(); } static void button_clicked (GtkWidget * button, gpointer data) { g_print( "Button clicked \n " ); } int main ( int argc, char * argv[]) { GtkWidget * window, * label, * box, * button ; gtk_init( & argc, & argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (window), "Test GTK" ); gtk_window_set_default_size (GTK_WINDOW (window), 500 , 200 ); #if 1 //Use gtk3: change 0->1, Use gtk2: keep it is 0 //Using gtk3 box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5 ); ...

How to test frame buffer in linux

The intended goal of this article is to provide the user with enough information so they can display an image onto a screen of their choosing. How to re-build frame buffer testing application. Base knowledge http://trac.gateworks.com/wiki/OpenEmbedded/Video_Out Frame buffer test application - rebuild fb-test-app step 1: Download soure code ( git installed on your machine and account in git-hub is required) https://github.com/prpplague/fb-test-app Command in git: git init git clone https://github.com/prpplague/fb-test-app.git step 2: Change makefile vi Makefile //open Makefile by vim editor :set nu //show line number replace from line 6 to line 12 by folow code: CC=arm-linux-gnueabi-gcc CFLAGS=-02 -Wall Save change command :wq step 3: Rebuid Type “make” command step 4: Copy execute file to target system by filezilla or something like that step 5: Remote target by root account, change mode of execute file (what copied from host) ...