Mục lục:

Trợ lý Google rảnh tay cho Raspberry Pi: 14 bước (có hình ảnh)
Trợ lý Google rảnh tay cho Raspberry Pi: 14 bước (có hình ảnh)

Video: Trợ lý Google rảnh tay cho Raspberry Pi: 14 bước (có hình ảnh)

Video: Trợ lý Google rảnh tay cho Raspberry Pi: 14 bước (có hình ảnh)
Video: Đưa trợ lý ảo Google Assistant lên Gương Thông Minh với Raspberry Pi mới nhất 2021 2024, Tháng mười một
Anonim
Image
Image
Định dạng thẻ SD
Định dạng thẻ SD

Xin chào và chào mừng bạn đến với Tài liệu hướng dẫn đầu tiên của tôi!

Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn những gì tôi coi là cách dễ nhất để cài đặt Trợ lý Google toàn ca hát, nhảy múa trên Raspberry Pi của bạn. Cô ấy hoàn toàn rảnh tay với lệnh OK Google và cô ấy tự động khởi động khi bạn khởi động Pi của mình. Cô ấy rất tuyệt và rất dễ thiết lập!

Vì vậy, làm thế nào tất cả điều này có thể?

Cách đây không lâu, Google đã phát hành bộ công cụ AI tự làm với số 57 của The Magpi. Điều này khiến việc tạo trợ lý Google của riêng bạn trở nên vô cùng dễ dàng, tuy nhiên, việc nắm giữ bộ giọng nói khó hơn một chút và ở nhiều nơi, nó đã được bán hết trong vòng vài giờ.

May mắn thay, Google đã làm cho tất cả các phần mềm có sẵn trực tuyến hoàn chỉnh với đầy đủ hướng dẫn. Điều này có nghĩa là chúng tôi không cần một bản sao của The Magpi để tận dụng tất cả những công việc khó khăn đó.

Mặc dù vậy, dường như không có bất kỳ hướng dẫn rõ ràng nào trực tuyến về cách sử dụng bộ giọng nói mà không có bản sao của tạp chí hoặc không có phần cứng đi kèm với nó. Thay vào đó, hầu hết các hướng dẫn cố gắng cài đặt mọi thứ từ đầu thường dẫn đến mớ mã không thể làm theo đối với những người không phải là lập trình viên như tôi.

Và đó là nơi có thể hướng dẫn này. Đó là kết quả của 2 ngày làm việc chăm chỉ xem hàng trăm hướng dẫn, video và bài đăng trực tuyến. Kết quả là Trợ lý Google chạy ổn định khi khởi động và được kích hoạt bằng giọng nói với từ nóng 'OK Google'.

Những gì được yêu cầu?

Để hoàn thành thành công Bản hướng dẫn này, bạn sẽ cần những thứ sau:

  • Raspberry Pi 3 (với thẻ nhớ microSD thông thường và dây nguồn). * Cảm ơn MichaelW142, người đã xác nhận rằng điều này cũng hoạt động với Raspberry Pi 2.
  • Một loa cơ bản với kết nối hỗ trợ 3,5 mm
  • Một micrô USB
  • Một con chuột và bàn phím

Bước 1: Định dạng thẻ SD

Điều đầu tiên mà chúng ta cần làm là định dạng thẻ SD của mình. Hãy sử dụng Công cụ định dạng của Hiệp hội SD được khuyến nghị bởi Raspberry Pi Foundation.

Sau khi cài đặt, khởi chạy ứng dụng và nhấp vào ‘Tùy chọn’ Bạn cần thay đổi tùy chọn cho ‘ĐIỀU CHỈNH KÍCH THƯỚC ĐỊNH DẠNG’ thành ‘BẬT’.

Bây giờ hãy nhấp vào ‘OK’ và kiểm tra kỹ xem chúng tôi có đang định dạng đúng ổ đĩa hay không, sau đó nhấp vào ‘Định dạng’. Quá trình này sẽ không mất quá nhiều thời gian, chỉ cần đợi xác nhận rằng ổ đĩa đã được định dạng thành công trước khi bạn chuyển sang bước tiếp theo.

Bước 2: Chuẩn bị thẻ SD

Chuẩn bị thẻ SD
Chuẩn bị thẻ SD

Tiếp theo, chúng ta cần tải xuống hình ảnh thẻ nhớ microSD Voice Kit cho Raspberry Pi. Bạn có thể tải xuống hình ảnh từ Google Drive của tôi.

Để chuyển hình ảnh mà chúng tôi vừa tải xuống thẻ SD, chúng tôi sẽ sử dụng một chương trình có tên là Etcher.io. Nó miễn phí, mã nguồn mở và không yêu cầu cài đặt.

Sau khi bạn đã tải xuống Etcher, hãy chạy chương trình và bạn sẽ thấy một màn hình giống như màn hình ở trên. Có thể mất một hoặc hai phút để tải, vì vậy nếu nó không tải ngay lập tức, hãy kiên nhẫn.

Nhấp vào 'Chọn hình ảnh' và điều hướng đến hình ảnh bộ giọng nói mà chúng tôi vừa tải xuống (aiyprojects-2017-05-03.img). Sau khi được chọn, hãy kiểm tra kỹ xem bạn có đang ghi nội dung vào đúng đĩa hay không. Giả sử rằng chúng ta đã chọn đúng đĩa thì hãy nhấp vào ‘Flash!’.

Có thể mất khoảng 20 phút hoặc hơn để ghi hình ảnh vào thẻ SD của bạn, vì vậy hãy thoải mái đi và pha cho mình một tách trà ngon và tôi sẽ gặp lại bạn ở đây trong giây lát!

Bước 3: Tăng sức mạnh cho Pi

Tăng sức mạnh cho Pi!
Tăng sức mạnh cho Pi!
Tăng sức mạnh cho Pi!
Tăng sức mạnh cho Pi!

Ngay sau khi thẻ SD sẵn sàng, chúng tôi có thể đặt thẻ nhớ microSD vào Raspberry Pi của mình. Tại thời điểm này, chúng ta cũng cần kết nối dây nguồn, cáp HDMI, bàn phím, chuột, màn hình, loa và micrô USB. Hy vọng rằng thiết lập của bạn sẽ giống như của tôi.

Tôi đang sử dụng bàn phím và chuột không dây, vì vậy đừng lo lắng nếu bạn kết thúc với một vài dây cáp bổ sung với thiết lập của riêng bạn!

Với cáp nguồn được cắm vào cho phép Raspberry Pi của bạn khởi động và bạn sẽ sớm được sử dụng máy tính để bàn Pixel tiêu chuẩn.

Bước 4: Cấu hình ban đầu

Cấu hình ban đầu
Cấu hình ban đầu
Cấu hình ban đầu
Cấu hình ban đầu
Cấu hình ban đầu
Cấu hình ban đầu

Lấy con trỏ của bạn và điều hướng đến biểu trưng Raspberry Pi ở trên cùng bên trái của màn hình. Từ menu thả xuống, hãy chọn ‘Tùy chọn’ và sau đó chọn ‘Cấu hình Raspberry Pi’.

Tiếp theo, đi tới 'Giao diện' và bật 'SSH'.

Bây giờ hãy nhấp vào biểu tượng WiFi ở trên cùng bên phải của màn hình và chọn mạng WiFi của bạn. Nếu WiFi của bạn được bảo vệ bằng mật khẩu, bạn sẽ được nhắc nhập dữ liệu đó vào. Dấu tích màu xanh lục xác nhận rằng chúng tôi đã kết nối thành công và chúng tôi đã sẵn sàng chuyển sang bước tiếp theo.

Bước 5: Cập nhật cài đặt

Cập nhật cài đặt
Cập nhật cài đặt

Đây là mức nâng cao như hướng dẫn này. Chúng tôi sẽ sử dụng thiết bị đầu cuối dành cho nhà phát triển để cập nhật SDK Trợ lý Google, Bộ công cụ dự án và các phụ thuộc nhằm đảm bảo chúng tôi có phiên bản mới nhất. Đừng hoảng sợ nếu không có điều nào trong số này có ý nghĩa đối với bạn nhưng điều cần thiết là chúng ta không được bỏ qua bước này. Chỉ cần làm chính xác như hướng dẫn này nói rằng hãy cẩn thận để không mắc bất kỳ lỗi chính tả nào và mọi việc sẽ diễn ra tốt đẹp.

Vì vậy, hãy hoảng sợ, hãy bắt đầu! Nhấp đúp vào tên biểu tượng trên màn hình ‘Start dev terminal’.

Bạn sẽ thấy một cửa sổ thiết bị đầu cuối nhà phát triển trông đáng sợ như hình trên.

Tiếp theo, gõ các lệnh sau vào terminal chính xác như chúng xuất hiện bên dưới. Có 9 lệnh ở đây và mỗi lệnh phải được nhập riêng theo thứ tự xuất hiện. Sau khi nhập mỗi lệnh, hãy nhấn ‘Enter’ trên bàn phím của bạn trước khi chuyển sang lệnh tiếp theo. Một số lệnh sẽ mất vài giây để hoàn thành vì vậy hãy kiên nhẫn chờ mỗi lệnh hoàn thành trước khi chuyển sang lệnh tiếp theo.

cd ~ / Assistant-sdk-python

git tổng thể thanh toán

git pull origin master

cd ~ / voice-Recogzer-raspi

git tổng thể thanh toán

git pull origin master

cd ~ / voice-Recogzer-raspi

rm -rf env

scripts / install-deps.sh

Bước 6: Chuẩn bị tệp cấu hình

Tiếp theo, chúng ta cần sao lưu các tệp cấu hình hiện có của mình và chuyển sang các phiên bản mới nhất vừa được cập nhật. Dưới đây là 4 lệnh khác để bạn thực hiện điều đó. Những điều này có thể được thực hiện trong cùng một thiết bị đầu cuối dành cho nhà phát triển mà chúng tôi vừa mới sử dụng. Một lần nữa, chúng phải được thực hiện theo thứ tự này và phải được nhập chính xác như chúng xuất hiện bên dưới:

cp ~ /.config / status-led.ini ~ /.config / status-led.ini ~

cp ~ /.config / voice-Recogzer.ini ~ /.config / voice-Recogzer.ini ~

cp ~ / voice-Recogzer-raspi / config / status-led.ini.default ~ /.config / status-led.ini

cp ~ / voice-Recogzer-raspi / config / voice-Recogzer.ini.default ~ /.config / voice-Recogzer.ini

Bước 7: Thiết lập từ nóng

Thiết lập từ nóng
Thiết lập từ nóng
Thiết lập từ nóng
Thiết lập từ nóng

Công việc tuyệt vời cho đến nay! Bây giờ chúng ta đang thực sự gần gũi vì vậy hãy chờ đợi ở đó.

Bây giờ, chúng tôi cần thay đổi trình kích hoạt cho bộ công cụ dự án AIY của Google để nó phản hồi lại giọng nói của chúng tôi khi chúng tôi nói từ "OK Google".

Nhập lệnh sau vào thiết bị đầu cuối của nhà phát triển:

nano ~ /.config / voice-Recogzer.ini

Điều này sẽ tạo ra cửa sổ này thậm chí còn đáng sợ hơn.

Trong cửa sổ mới này, hãy tìm mã sau:

# Chọn trình kích hoạt: gpio (mặc định), vỗ tay, ok-google.

# trigger = vỗ tay

Chúng tôi cần thay đổi mã này thành:

# Chọn trình kích hoạt: gpio (mặc định), vỗ tay, ok-google.

trigger = ok-google

Nếu bạn sử dụng các phím mũi tên trên bàn phím, bạn sẽ thấy một con trỏ xuất hiện. Sử dụng các phím mũi tên, đưa con trỏ xuống dòng văn bản mà chúng tôi đang cố gắng thay đổi. Sử dụng phím xóa lùi trên bàn phím của bạn xóa dòng văn bản mà chúng tôi đang cố gắng thay đổi và nhập lại giống như ví dụ trên.

Lưu ý rằng tôi cũng đã xóa ký hiệu #, điều quan trọng là chúng tôi không đưa ký hiệu # vào dòng văn bản mới này.

Tôi đã đính kèm một ảnh chụp màn hình trước và sau khi tất cả điều này sẽ trông như thế nào (gửi kèm theo là tôi đã mất bạn ở đó).

Giả sử cửa sổ của bạn giống hệt cửa sổ của tôi, chúng tôi có thể đóng và lưu các thay đổi. Giữ ‘Ctrl’ trên bàn phím của bạn và nhấn ‘X’ để đóng cửa sổ. Sau đó, chúng tôi sẽ được nhắc lưu các thay đổi mà chúng tôi đã thực hiện, nhấn ‘Y’ rồi nhấn ‘Enter’ trên bàn phím của bạn. Bây giờ cửa sổ sẽ đóng lại và các thay đổi đã được lưu.

Để đảm bảo những thay đổi được thực hiện có ảnh hưởng, chúng tôi cần khởi động lại dịch vụ. Nhập lệnh sau vào cửa sổ dòng lệnh và nhấn ‘Enter’:

sudo systemctl khởi động lại voice-Recogzer.service

Bước 8: Cấu hình âm thanh (Phần 1)

Cấu hình âm thanh (Phần 1)
Cấu hình âm thanh (Phần 1)

Ngay bây giờ Trợ lý Google ít nhiều vẫn còn hoạt động và sẵn sàng phục vụ.. Xin chúc mừng!

Tuy nhiên, trước khi quá phấn khích, các bạn không thể nghe thấy tiếng nhau. Đó là bởi vì Google AIY Project Image đã được định cấu hình để hoạt động với phần cứng đi kèm với bộ công cụ. Vì chúng tôi đang sử dụng loa aux tiêu chuẩn và micrô USB nên chúng tôi cần phải điều chỉnh một số cấu hình.

Một lần nữa, chúng ta sẽ sử dụng cùng một cửa sổ đầu cuối dành cho nhà phát triển, loại thời gian này:

sudo leafpad /boot/config.txt

Thao tác này sẽ mở ra một cửa sổ văn bản. Cuộn xuống cuối tài liệu và xóa dấu # ở trước dòng dtparam = audio = on và chèn dấu # vào trước hai dòng bên dưới.

Sau khi bạn thực hiện những thay đổi này, nó sẽ chính xác như sau:

# Bật âm thanh (tải snd_bcm2835)

dtparam = audio = on # dtoverlay = i2s-mmap # dtoverlay = googlevoicehat-soundcard

Tôi cũng đã đính kèm một ảnh chụp màn hình để cho bạn thấy nó sẽ như thế nào.

Đi tới ‘Tệp’ rồi nhấp vào ‘Lưu. Bây giờ bạn có thể đóng tài liệu.

Bước 9: Cấu hình âm thanh (Phần 2)

Cấu hình âm thanh (Phần 2)
Cấu hình âm thanh (Phần 2)

Quay lại thiết bị đầu cuối nhà phát triển một lần nữa, nhập:

sudo leafpad /etc/asound.conf

Khi bạn nhấn "Enter", một tài liệu văn bản mới sẽ mở ra. Lần này, xóa TẤT CẢ văn bản trong tài liệu và thay thế bằng văn bản sau:

pcm.! default {type asym capture.pcm "mic" playback.pcm "speaker"} pcm.mic {type plug slave {pcm "hw: 1, 0"}} pcm.speaker {type plug slave {pcm "hw: 0, 0 "}}

Một lần nữa, tôi đã đính kèm một ảnh chụp màn hình cho bạn thấy điều này sẽ như thế nào.

Một lần nữa lưu và đóng tài liệu.

Bây giờ đã đến lúc khởi động lại Raspberry Pi của bạn. Nhấp vào biểu tượng Raspberry Pi ở trên cùng bên trái màn hình của bạn và nhấp vào ‘Tắt máy’ rồi ‘Khởi động lại’.

Sau khi bạn khởi động lại Pi, chúng tôi chỉ cần thực hiện thêm một tinh chỉnh nữa. Nhấp đúp vào biểu tượng 'Start dev terminal' một lần nữa và nhập như sau:

leafpad /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py

Trong tài liệu cuối cùng này, bạn cần xác định dòng mã có nội dung:

VOICEHAT_ID = ‘googlevoicehat’

Thay đổi điều này thành:

VOICEHAT_ID = ‘bcm2835’

Khi bạn đã thực hiện những thay đổi này, giống như chúng tôi đã làm trước đó, hãy lưu sau đó đóng tài liệu này.

Bước 10: Kiểm tra âm thanh

Kiểm tra âm thanh
Kiểm tra âm thanh

Trên màn hình nền có một tệp tên là ‘Kiểm tra âm thanh’. Nhấp đúp vào nút này và làm theo lời nhắc để đảm bảo rằng cả giọng nói và micrô đều hoạt động.

Nếu bạn làm theo đúng hướng dẫn này thì sẽ không có vấn đề gì. Tuy nhiên, nếu bạn không thể nghe thấy gì, hãy kiểm tra kỹ xem âm lượng đã được tăng lên chưa và Raspberry Pi của bạn có đang sử dụng ‘Analog’ cho đầu ra âm thanh hay không. Bạn có thể thực hiện việc này bằng cách nhấp chuột phải vào biểu tượng âm thanh ở đầu màn hình. ‘Analog’ phải được đánh dấu giống như ví dụ trong ảnh chụp màn hình.

Giả sử bạn đã vượt qua kiểm tra âm thanh, chúng ta có thể chuyển sang bước tiếp theo.

Bước 11: Kết nối với đám mây

Trước khi Trợ lý Google đưa ra câu trả lời cho những câu hỏi nhức nhối trong cuộc sống, chúng tôi cần kết nối cô ấy với Dịch vụ đám mây của Google.

Điều này rất dễ thực hiện nhưng nếu bạn chưa từng ở trên đám mây thì thoạt đầu có vẻ hơi khó khăn.

Đây là những gì chúng ta cần làm:

1) Trên Raspberry Pi, mở trình duyệt Internet Chrome và truy cập Bảng điều khiển đám mây:

2) Đăng nhập bằng tài khoản Google hiện có hoặc đăng ký nếu bạn chưa có.

3) Tạo một dự án mới và đặt tên cho nó. Tôi đã gọi là ‘Google Pi’ của mình

4) Sử dụng thanh tìm kiếm, bắt đầu nhập ‘Trợ lý Google’ và bạn sẽ thấy ‘API Trợ lý Google’. Nhấp vào nó và sau đó khi trang tiếp theo tải, hãy nhấp vào ‘Bật’ để kích hoạt API.

5) Đi tới "Trình quản lý API" rồi đến "Thông tin đăng nhập" và tạo một "ứng dụng khách OAuth 2.0".

6) Nhấp vào 'Tạo thông tin xác thực' và chọn 'ID ứng dụng khách OAuth'. Nếu bạn chưa từng tham gia đám mây trước đây thì bây giờ bạn sẽ được nhắc định cấu hình màn hình đồng ý của mình. Bạn sẽ cần đặt tên cho ứng dụng của mình, tôi gọi là 'Raspberry Pi'. Tất cả các trường khác có thể được để trống.

7) Trong danh sách Thông tin đăng nhập, hãy tìm thông tin đăng nhập mới của bạn và nhấp vào biểu tượng tải xuống ở bên phải.

8) Trình duyệt chrome bây giờ sẽ tải xuống một tệp JSON nhỏ với tất cả thông tin đăng nhập của bạn được lưu trữ an toàn bên trong. Tìm tệp này và đổi tên nó thành ‘Assistant.json’, sau đó di chuyển nó đến /home/pi/assistant.json.

9) Cuối cùng, truy cập trang Kiểm soát hoạt động: https://myaccount.google.com/activitycontrols và bật các dịch vụ sau: Hoạt động web và ứng dụng, Lịch sử vị trí, Thông tin thiết bị, Hoạt động giọng nói và âm thanh. Đảm bảo đăng nhập bằng cùng một tài khoản Google như trước đây!

Nếu bạn gặp khó khăn ở bất kỳ thời điểm nào trong giai đoạn này, đừng lo lắng, Google đã thực hiện một công việc xuất sắc trong việc ghi lại quá trình này bằng ảnh chụp màn hình cho từng bước trên trang web Google AIY Kit.

Bước 12: Thử nghiệm cuối cùng

Thử nghiệm cuối cùng
Thử nghiệm cuối cùng

Nếu mọi thứ được thiết lập chính xác trên đám mây, chúng tôi hiện đã sẵn sàng trao đổi với Google. Sử dụng lại cửa sổ lệnh ‘Start dev terminal’, nhập như sau:

src / main.py

Thao tác này sẽ đánh thức trợ lý của chúng tôi nhưng vì đây là lần đầu tiên chúng tôi kết nối với Dịch vụ của Google nên một trình duyệt web sẽ mở ra và bạn cần đăng nhập vào Google để cấp quyền cho Raspberry Pi truy cập API Trợ lý Google. Một lần nữa, hãy đảm bảo rằng bạn sử dụng thông tin đăng nhập tài khoản Google giống như bạn đã làm trước đây.

Khi bạn đã đăng nhập thành công và được cấp quyền, bạn sẽ được nhắc đóng cửa sổ. Cửa sổ lệnh bây giờ sẽ giống như ảnh chụp màn hình đính kèm xác nhận rằng mọi thứ đã được thiết lập chính xác.

Hãy tiếp tục, đặt một câu hỏi, cô ấy đang lắng nghe!

Tuy nhiên, trước khi bạn quá phấn khích, chúng ta vẫn chưa hoàn thành. Khi bạn chơi xong, hãy đóng cửa sổ lại, để làm điều này chỉ cần sử dụng dấu thập trắng ở trên cùng bên phải của cửa sổ.

Bước 13: Thiết lập Trợ lý Google khi khởi động

Tôi đã hứa với bạn rằng Trợ lý Google của chúng tôi sẽ tự động khởi động khi chúng tôi khởi động Raspberry Pi. Để thực hiện việc này, hãy mở một cửa sổ lệnh mới bằng cách sử dụng biểu tượng 'Start dev terminal' trên màn hình. Nhập dòng mã sau vào cửa sổ dòng lệnh của bạn và nhấn 'Enter' trên bàn phím của bạn:

sudo systemctl kích hoạt trình nhận dạng giọng nói

Chúng tôi vừa định cấu hình tự động khởi động Trợ lý Google của mình bằng một dòng mã.. Thật dễ dàng như vậy !!

Bước 14: Dòng kết thúc

Bây giờ bạn đã hoàn thành tất cả các bước, hãy tiếp tục và khởi động lại Raspberry Pi của bạn. Nếu bạn đã làm theo tất cả các hướng dẫn này một cách cẩn thận thì Trợ lý Google sẽ chạy trong nền khi Pi tải lên. Hãy thử, nói OK Google để đánh thức cô ấy và hỏi cô ấy bất cứ điều gì bạn thích!

Tôi thực sự hy vọng bạn thích điều này có thể hướng dẫn. Đó là kết quả của 2 ngày làm việc chăm chỉ và đọc rất nhiều trên mạng. Tôi chắc chắn không phải là một lập trình viên vì vậy tôi đã cố gắng tìm ra cách dễ nhất và hợp lý nhất để đưa Trợ lý Google hoạt động lên Raspberry Pi và tôi tin rằng chính xác là như vậy.

Nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào liên quan đến Tài liệu hướng dẫn này, vui lòng cho tôi biết trong phần bình luận bên dưới. Tôi cũng rất thích nghe cách của bạn thành ra.

Tôi đã đọc rất nhiều hướng dẫn, bài đăng trên blog và mục nhập diễn đàn nhưng đột phá lớn nhất của tôi với dự án này đến từ 2 bài đăng trực tuyến đều cố gắng hoàn thành các nhiệm vụ tương tự: https://eduncan911.com/stem/embedded/aiy-google-assistant -upgrades-may-2017.html và https://www.androidauthority.com/build-google-assistant-raspberry-pi-770296/. Có thể hướng dẫn này là kết quả của việc tìm ra cách kết hợp cả hai lại với nhau trong một chương trình Có thể hướng dẫn dễ dàng và thẳng thắn!

Tín dụng bổ sung

- Google Assistant SDK đã có một số lượng lớn các tính năng được tích hợp sẵn, tuy nhiên có rất nhiều 'mod' mà bạn có thể thêm vào AIY Kit để cung cấp cho nó một số chức năng bổ sung. Ktinkerer có một danh sách cập nhật các bản mod mới nhất có sẵn, hãy kiểm tra! Cảm ơn bạn cyberwolves đã chỉ ra điều này:)

- Làm thế nào về một thùng loa cho AI mới cáu kỉnh của bạn? Kiểm tra cái này của adylinn.

Nếu bạn có thể nghĩ ra bất kỳ điều gì khác để thêm vào Tài liệu hướng dẫn này, vui lòng liên hệ:)

Cuộc thi tác giả lần đầu tiên
Cuộc thi tác giả lần đầu tiên
Cuộc thi tác giả lần đầu tiên
Cuộc thi tác giả lần đầu tiên

Về nhì trong cuộc thi tác giả lần đầu tiên

Đề xuất: