Trí thông mình nhân tạo với Watson IBM và Raspberry Pi (Phần 1): Nhận dạng ngôn ngữ và tâm trạng

Mô tả dự án: 

Bài trước tui đã hướng dẫn các bạn làm một khóa "thông minh" diện khuôn mặt với Raspberry Pi. Vì tài nguyên của Pi có hạn nên một phần công việc (cụ thể là phần training) phải được đảm nhận bởi một hệ thống khác là máy tính cá nhân của bạn. Đây cũng là xu thế của các sản phầm phần cứng trí thông minh nhân tạo trong tương lai: các phần cứng vật lý được kết nối với đám mây/ siêu máy tính để giải các thuật toán thông minh, nhường tài nguyên để robot thao tác với môi trường ngoại vi. Để làm hiểu rõ vấn đề này hơn tui sẽ hướng dẫn các bạn trong bài này xây dựng một hệ thống nhận diện giọng nói và đoán xem tâm trạng của người nói đang hỷ nộ ái ố ra sao. 

Giới thiệu sơ lược về Watson IBM

Sau khi cỗ siêu máy tính DeepBlue của IBM đánh bại kỳ thủ cờ vua Garry Kasparov thì công ty này bắt đầu tìm kiếm thử thách mới. Mục đích lần này là nhằm đến khả năng xử lý ngôn ngữ tự nhiên, và Watson được ra đời. Năm 2011 Watson tranh tài trên chương trình hỏi đáp truyền hình Jeopardy! và đánh bại cả Brad Rutter (người thắng nhiều tiền nhất mọi thời đại) và Ken Jennings (người giữ chức quán quân lâu nhất). Với chiến thắng này Watson giành được giải thưởng 1 triệu Mỹ cành. Hiện nay Watson đang được đưa vào sử dụng trong các dịch vụ tư vấn y tế và Internet của vạn vật.

Về phần cứng, theo như Wikipedia thì:

[...] hệ thống này là một chuỗi gồm 90 máy chủ IBM Power 750, mỗi máy chủ gồm có 32 nhân xử lý POWER7 chạy với tốc độ 3,55 GHz [...] Watson có thể xử lý 500 gigabytes mỗi giây [...] Hơn nữa, mỗi máy trong số 32 máy chủ đó được cung cấp với khoảng 256 GB bộ nhớ [...] Watson không lệ thuộc vào các dữ liệu chứa trong ổ cứng vì tìm dữ liệu ở ổ cứng rất chậm chạp

IBM đặt tên hệ thống là Watson nhằm vinh danh doanh nhânThomas John Watson, CEO có công đưa IBM vươn ra thế giới.

 

 

Nguyên lý

Nguyên lý hoạt động của hệ thống gồm 3 bước sau:

  • Raspberry Pi sẽ thu lại âm thanh từ wecam có gắn microphone và lưu vào tập tin speech.wav
  • Sau đó ta sẽ dùng python gửi tập tin này lên cloud của IBM để dịch thành ký tự (text). Việc này được đảm trách bởi Speech-to-text API.
  • Ký tự text sẽ được gửi tiếp qua dịch vụ AlchemyLanguage của IBM để thống kê và phân tích tâm trạng. Việc này được đảm trách bởi AlchemyAPI.

Cài đặt tài khoản

Việc đầu tiên cần làm là tạo 1 tài khoản để các bạn tiếp cận với kho ứng dụng của IBM. Các bạn vào IBM Bluemix tạo cho mình 1 tài khoản. Nhờ là phải vào email để confirm

Sau đó bấm vào Catalog để tìm 2 app là Speech-to-Text:

Khi các bạn search speech to text thì sẽ hiện ra thế này:

Bấm vào đó, tiếp theo là create để tạo 1 app. Sau đó IBM sẽ cho các bạn 1 username và pass. Các bạn lưu lại thông tin này

Các bạn bấm vào catalog làm tương tự với từ khóa Alchemy để có được API key của ứng dụng này:

Code thoai

  • Đầu tiên ta phải tải Python SDK 
    pip install --upgrade watson-developer-cloud
  • Sau đó là cài PyAudio
    sudo apt-get install python-pyaudio
  • Vào Github của tui để tải các tập tin về.
  • Sau đó chỉnh thông tin trên tập tin config.py bằng username, password và api key mà các bạn vừa có được ở bước trên.
  • Cuối cùng là chạy
    sudo python run.py

Thành quả

Khi bắt đầu chạy code thì các bạn sẽ thấy có nhiều output không cần thiết. Khi terminal dừng lại thì các bạn bắt đầu nói vào micro (bằng TIẾNG ANH nha) 

 

Hệ thống bắt đầu dịch khi bạn im lặng 1 quãng thời gian lâu

Cuối cùng là sẽ hiện lên kết quả:

  • Text: Đây là những gì speech-recognition dịch được. Nguyên văn của tui là "I am happy today." Tùy vào khẩu ngữ khác nhau thi dịch có phần đúng phần sai. Các dự án bạn nên giới hạn các mẫu câu ngắn gọn đơn giản để cho tính chính xác cao.
  • type: tích cực (positive), tiêu cực (negative) hoặc trung lập (neutral) dựa vào ngữ cảnh mà Alchemy suy luận dựa trên text. Vì có 'happy' nên Watson đoán là bạn đang tích cực.
  • Dòng cuối cùng là mức độ hỷ nộ ái ố (từ 0 đến 1). Có happy nên chỉ số "joy" của cao nhất. Ngoài ra bạn có thể vào đây chép 1 đoạn văn để Watson phân tích và tìm hiểu thêm về json của Alchemy. 

Nếu các bạn đọc đến đây thì xin chào mừng các bạn đến với tương lai của trí tuệ nhân tạo khi robot có thể đoán tâm trạng của người đối diện!

lên
7 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Hướng dẫn sử dụng cảm biến nhiệt độ DS18B20 (-55°C đến +125°C) sai số ±0.5°C

Lại quay về vấn đề đo nhiệt độ, như ở bài trước, mình đã dùng cả LM35, cả TMP36. Nhưng rốt cuộc vẫn không hiệu quả, lần này mình đang sử dụng con DS18B20 này và cảm thấy khá ổn hơn so với lần trước. Nhiệt độ ít bị chênh lệch hơn và như quảng cáo là chỉ có sai số ±0.5°C thôi (nếu nhiệt độ trong phạm vi -10°C to +85°C, đáng để thử phải không nào?

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Hướng dẫn sử dụng cảm biến nhiệt độ TMP36 - Khoảng đo từ -40 đến 125 độ C

Mình thấy cảm biến nhiệt độ LM35 rất rẻ và hoạt động cũng tương đối chính xác. Tuy nhiên, độ bền của nó không cao vì mình thấy mình chỉ dùng cảm biến LM35 trong khoảng thời gian 3 tháng, sau đó phải thay cảm biến khác (để đo nhiệt độ luộc gà). Bản thân mình không thích điều đó nên thử dùng một cảm biến khác cũng có chức năng tương tự là TMP36 và thấy nó hoạt động bền hơn (đã đến tháng thứ 4 nhưng chưa hư). Mình xin chia sẻ với các bạn nhé. Loại này hơi khó tìm và không thông dụng, nhưng nó bền hơn hẳn LM35 các bạn nhé.

lên
10 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

(Phòng chống) Nghệ thuật hắc ám với ESP8266 - Phần 4: Thủ khoa đại học có khó?

Trong bài đầu tiên tui đã hướng dẫn các bạn hack kỳ thi quốc gia với module ESP8266. Dĩ nhiên là không ai cho các bạn cầm theo điện thoại vào phòng thi để mà các bạn mở lên tìm beacon đáp án. Tuy nhiên không ai cấm các bạn mang máy tính casio vào phòng thi cả. Bài này tui sẽ hướng dẫn các bạn gắn wifi vào chiếc máy tính casio huyền thoại để nhận phao thi từ bất kỳ nơi nào trên thế giới. Lưu ý là các bạn nên chế cháo có trách nhiệm, chớ nên kinh doanh buôn bán thành quả nếu các bạn không muốn cục tình báo C2 gõ cửa hỏi thăm. 

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Internet của Vạn Vật ở Việt Nam và hướng phát triển cho cộng đồng Arduino

Đây là bài dẫn nhập cho các bạn giới thiệu về Internet của Vạn Vật (IW) và đề xuất cho cộng đồng Arduino của chúng ta

lên
25 thành viên đã đánh giá bài viết này hữu ích.