đồ án 1 phần mềm nhận diện giọng nói hỗ trợ speaking english dolphin

39 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 phần mềm nhận diện giọng nói hỗ trợ speaking english dolphin

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nhận thức về điều này, chúng tôi quyết định phát triển một ứng dụng quản lý ghi âm, tập trung vào việc hỗ trợ người dùng ghi âm cuộc trò chuyện trong các cuộc họp hoặc bài giảng tiếng An

Trang 1

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn

Huỳnh Tuấn Anh

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN

Trang 3

1.5 Đóng góp của nghiên cứu 10

1.6 Bố cục bài báo cáo 11

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 12

2.6 Google Cloud – Speech to text 13

2.7 Tổng quan về backend server 14

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15

3.1 Đối tượng người dùng 15

3.2 Xây dựng hệ thống 15

3.2.1 Công nghệ sử dụng 15

3.2.2 Sơ đồ Use case 15

3.2.3 Mô tả Use cases 16

3.2.4 Đặc tả Use case 17

3.2.5 Sơ đồ Activity 22

Trang 5

DANH MỤC HÌNH

Hình 1 So sánh độ chính xác của các dịch vụ hỗ trợ Speech To Text 14

Hình 2 Sơ đồ Use case 16

Hình 3 Sơ đồ Activity mô tả chức năng Đăng ký 23

Hình 4 Sơ đồ Activity mô tả chức năngTạo mới một file ghi âm 24

Hình 5 Sơ đồ Activity mô tả chức năng Chia sẻ file ghi âm 25

Hình 6 Sơ đồ Activity mô tả chức năng Tạo nhóm mới 26

Hình 7 Giao diện màn hình đăng nhập 28

Hình 8 Giao diện màn hình đăng ký 29

Hình 9 Giao diện màn hình Quên mật khẩu 30

Hình 10 Giao diện màn hình Home 31

Hình 11 Giao diện màn hình Recording 32

Hình 12 Giao diện màn hình Shared With Me 33

Hình 13 Giao diện màn hình Group 34

Hình 14 Giao diện màn hình Thông báo 35

Hình 15 Giao diện màn hình Cài đặt 36

Trang 6

DANH MỤC BẢNG

Bảng 1 1

Trang 7

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Từ nguyên gốc

API Application Programming Interface ORM Object-Relational Mapping VSCode Visual Studio Code

Trang 8

CHƯƠNG 1: MỞ ĐẦU

1.1 Động lực nghiên cứu

Sự phát triển không ngừng của công nghệ, đặc biệt là trong lĩnh vực Công nghệ Thông tin, đã đánh dấu sự biến đổi toàn diện trong cuộc sống của chúng ta Công nghệ Thông tin không chỉ là một phần quan trọng mà là một động lực chính để thúc đẩy sự tiến bộ Sức mạnh của việc số hóa mọi thông tin đã biến máy tính thành một công cụ linh hoạt, thống nhất có khả năng thực hiện đa dạng nhiệm vụ ở mọi lĩnh vực, từ nghiên cứu và giáo dục đến quản lý và kinh doanh

Với sự lan rộng của Công nghệ Thông tin, nhu cầu về ứng dụng hỗ trợ quản lý, như quản lý file ghi âm, đang ngày càng tăng Nhận thức về điều này, chúng tôi quyết định phát triển một ứng dụng quản lý ghi âm, tập trung vào việc hỗ trợ người dùng ghi âm cuộc trò chuyện trong các cuộc họp hoặc bài giảng tiếng Anh trong lớp học

Ứng dụng của chúng tôi được thiết kế đặc biệt cho học sinh, sinh viên, và bất kỳ cá nhân nào muốn ghi âm cuộc trò chuyện, bài giảng, hội thảo để sau đó chuyển đổi thành văn bản phục vụ cho việc học tập và công việc hàng ngày Đặc biệt, chúng tôi cũng đảm bảo rằng ứng dụng của chúng tôi sẽ được phát triển trên nền tảng di động, mang lại sự linh hoạt và tiện lợi cho người dùng trên các thiết bị di động của họ

Khi chúng tôi quyết định xây dựng ứng dụng này, chúng tôi đặt ra một mục tiêu lớn: giúp mọi người quản lý dễ dàng các file ghi âm và nâng cao kỹ năng nói, nghe tiếng Anh của họ Chúng tôi hy vọng rằng ứng dụng của chúng tôi sẽ mang lại giá trị gia tăng cho người dùng và góp phần vào việc thúc đẩy sự tiến bộ trong việc học và làm việc hàng ngày

1.2 Khảo sát tình hình thực tế 1.2.1 Thực trạng hiện nay

Ngày nay, trong học tập và công việc, nhiều người cảm thấy khó khăn trong việc ghi nhớ nội dung bài giảng hoặc các buổi thảo luận trong các cuộc họp Cùng với đó, nhu cầu học tập Tiếng Anh ngày càng tăng, nhiều học sinh mong muốn ghi âm bài nói của chính mình để cải thiện kỹ năng phát âm Việc tạo ra một ứng dụng quản lý các file ghi âm giúp lưu trữ các nội dung cần thiết trong cuộc họp và trong các tiết học là vô cùng cần

Trang 9

thiết

1.2.2 Phương hướng giải quyết

Trước thực tế trên, nhóm chúng tôi quyết định xây dựng ứng dụng quản lý các file ghi âm Thông qua ứng dụng này, người dùng có thể ghi âm, chuyển đổi đoạn ghi âm thành đoạn văn bản và chỉnh sửa đoạn văn bản nếu cần thiết Bên cạnh đó, người dùng cũng có thể tạo nhóm, chia sẻ các file ghi âm, bình luận file ghi âm của các thành viên trong nhóm

1.3 Mục tiêu đề tài

Mục tiêu của dự án là cung cấp một giải pháp toàn diện và hiệu quả cho việc ghi âm và quản lý thông tin âm thanh Đồng thời, chúng tôi hướng đến việc tạo ra một giao diện người dùng trực quan, dễ sử dụng và mang lại trải nghiệm mượt mà, nhằm đáp ứng đầy đủ nhu cầu của người dùng và nâng cao hiệu suất công việc của họ trong việc xử lý và tận dụng thông tin từ ghi âm

Để hiện thực dự án, chúng tôi quyết định sử dụng framework hỗ trợ lập trình front end mạnh mẽ dành cho lập trình mobile và hệ thống back end linh hoạt, đáp ứng lưu trữ số lượng lớn danh sách các file ghi âm

Về tổng quan, ứng dụng sẽ bao gồm những chức năng sau đây:

1 Ghi âm cuộc hội thoại: Người dùng có thể ghi âm cuộc hội thoại trong cuộc họp hoặc bài giảng tại lớp

2 Chuyển đổi file ghi âm thành đoạn văn bản: Hệ thống chuyển đổi file ghi âm của người dùng thành văn bản Ngoài ra, người dùng có thể sửa chữa đoạn văn bản đã được chuyển đổi nếu cần thiết

3 Chia sẻ file ghi âm: Hệ thống cho phép người dùng chia sẻ file ghi âm của mình với người khác bằng cách cung cấp email của người nhận

4 Tạo nhóm: Hệ thống hỗ trợ tạo nhóm, người dùng có thể tạo hoặc tham gia vào các nhóm khác nhau, chia sẻ file ghi âm cho các thành viên trong nhóm

Về cụ thể, quá trình nhận diện giọng nói sẽ được thực hiện như sau:

1 Thu thập file ghi âm: Đầu tiên, người dùng ghi âm cuộc hội thoại Người dùng có thể ghi âm trực tiếp hoặc đăng tải các file có sẵn trong hệ thống

Trang 10

2 Chuyển đổi âm thanh thành văn bản: Hệ thống gửi file ghi âm đến back end để xử lý Tại back end, ta tạo API chuyển đổi âm thanh thành văn bản bằng cách sử dụng dịch vụ Speech to Text của Google Cloud Sau khi thu được kết quả là đoạn văn bản, ta hiển thị lên kết quả vừa nhận được

3 Lưu trữ file ghi âm và đoạn văn bản chuyển đổi tương ứng: Sau khi hiển thị, hệ thống lưu trữ thông tin chi tiết của file ghi âm và đoạn văn bản vào back end

1.4 Công nghệ và phạm vi

Trong phạm vi dự án này, nhóm chúng tôi ưu tiên các mục tiêu sau:

Thứ nhất, thành thạo ngôn ngữ lập trình Typescript, sử dụng framework React Native và môi trường NodeJS làm nền tảng để phát triển front end

Thứ hai, nghiên cứu và tìm hiểu cách sử dụng môi trường NodeJS làm nền tảng phát triển back end cũng như cách tạo ra các mô hình thực thể (entity data modal) theo dạng SQLite thông qua Prisma

Thứ ba, phát triển ứng dụng trên thiết bị di động: Ứng dụng cho phép sử dụng tài nguyên của hệ thống (micro) để ghi âm, đăng tải file ghi âm có sẵn từ hệ thống, nhận diện vân tay

Thứ tư, nghiên cứu cách tạo API cũng như cách liên lạc giữa server và front end thông qua các API đã được tạo

1.5 Đóng góp của nghiên cứu

Nghiên cứu về nhận diện giọng nói đóng góp một phần quan trọng cho đề tài về ứng dụng quản lý ghi âm, đặc biệt là trong ngữ cảnh học tập và làm việc với tiếng Anh Các kết quả thu được không chỉ mang lại những giải pháp tiện ích cho người dùng mà còn có những ảnh hưởng tích cực đối với việc phát triển kỹ năng ngôn ngữ và giao tiếp

Thứ nhất, thông qua việc ghi âm và chuyển đoạn ghi âm thành văn bản, ứng dụng của chúng tôi giúp người dùng tiết kiệm thời gian và công sức trong việc quản lý thông tin Điều này không chỉ tăng hiệu quả làm việc mà còn tạo ra một nơi lưu trữ và trích xuất thông tin quan trọng từ các cuộc trò chuyện, bài giảng

Thứ hai, ứng dụng của chúng tôi không chỉ đơn giản là một công cụ quản lý file ghi âm mà còn là một công cụ hỗ trợ học tập và nâng cao kỹ năng ngôn ngữ Khả năng chuyển đoạn ghi

Trang 11

âm thành văn bản giúp người dùng dễ dàng theo dõi và hiểu rõ nội dung, đồng thời còn tạo ra cơ hội cho việc xây dựng kỹ năng đọc và viết trong quá trình học tập

Thứ ba, sự tương thích với nền tảng di động của ứng dụng không chỉ đáp ứng xu hướng hiện nay mà còn mang lại sự linh hoạt và tiện ích cho người dùng trên các thiết bị di động của họ Điều này đặt ra một tiêu chí quan trọng về tính khả dụng và tiện lợi, đồng thời thách thức chúng tôi để duy trì và cải thiện trải nghiệm người dùng trên nhiều nền tảng khác nhau

Tóm lại, nghiên cứu của chúng tôi không chỉ hướng đến việc cung cấp một công cụ quản lý ghi âm mà còn mở rộng ra các khía cạnh giáo dục và phát triển cá nhân Hy vọng rằng đề tài này sẽ đóng góp vào sự phát triển toàn diện của người dùng, từ kỹ năng quản lý thông tin đến khả năng nắm bắt và tiếp thu kiến thức tiếng Anh

1.6 Bố cục bài báo cáo

Phần còn lại của báo cáo được trình bày theo bố cục như sau:

CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT CHƯƠNG 3 – XÂY DỰNG ỨNG DỤNG

CHƯƠNG 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trang 12

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 React Native

React Native là một framework mã nguồn mở được tạo ra bởi Facebook Nó được sử dụng để phát triển ứng dụng di động cho Android, iOS, Web và UWP bằng cách cho phép các nhà phát triển sử dụng React cùng với môi trường ứng dụng native Đó là một framework phổ biến được xây dựng trên nền tảng JavaScript, cho phép xây dựng ứng dụng di động chạy trên cả 2 nền tảng Android và iOS

React Native được Facebook phát hành lần đầu như một dự án mã nguồn mở vào năm 2015 Chỉ sau vài năm, nó trở thành một trong những giải pháp hàng đầu được sử dụng cho phát triển ứng dụng di động Phát triển React Native được sử dụng để xây dựng một số ứng dụng di động hàng đầu trên thế giới, bao gồm Instagram, Facebook và Skype React Native dễ dàng tích hợp với các API bên ngoài, chẳng hạn như các dịch vụ cloud, cơ sở dữ liệu, và các dịch vụ web khác Việc này giúp ứng dụng có thể tương tác với các nguồn dữ liệu và dịch vụ một cách mượt mà

2.2 Visual Studio Code

Visual Studio Code là một trình soạn thảo mã nguồn được phát triển bởi Microsoft dành cho hệ điều hành Windows, Linux và macOS Đây là công cụ hỗ trợ tính năng gỡ lỗi, đi kèm với Git, có tô đậm cú pháp, tự động hoàn thiện mã nguồn, đoạn mã ngắn (snippets) và các cải tiến mã nguồn

2.3 NodeJS

Node.js là một nền tảng phát triển ứng dụng được xây dựng trên JavaScript runtime của Chrome (V8 Javascript engine) mã nguồn mở và có khả năng chạy trên nhiều nền tảng Một ứng dụng Node.js chạy trong một quy trình đơn, mà không tạo ra một luồng mới cho mỗi yêu cầu

Node.js cho phép sử dụng JavaScript không chỉ trên trình duyệt mà còn trên máy chủ (server) Điều này tạo ra một môi trường đồng nhất cho phát triển cả frontend và backend của ứng dụng, giảm độ phức tạp và cản trở trong việc chuyển đổi giữa hai môi trường khác nhau

Một trong những đặc điểm quan trọng của Node.js là mô hình xử lý không chặn (non-blocking) Điều này cho phép nhiều thao tác I/O (như đọc/ghi vào cơ sở dữ liệu, gọi API) được thực hiện mà không cần chờ đợi kết quả trước khi tiếp tục xử lý Điều này làm

Trang 13

cho Node.js rất hiệu quả trong việc xử lý hàng nghìn kết nối đồng thời

2.4 Prisma

Prisma là một công cụ ORM (Object-Relational Mapping) cho Node.js và TypeScript, giúp giảm độ phức tạp khi làm việc với cơ sở dữ liệu Nó được thiết kế để tạo ra một lớp trừu tượng giữa ứng dụng của bạn và cơ sở dữ liệu, cho phép bạn tương tác với cơ sở dữ liệu bằng cách sử dụng các đối tượng JavaScript thay vì truy vấn SQL trực tiếp

Một số đặc điểm quan trọng của Prisma:

1 Độ linh hoạt: Prisma hỗ trợ nhiều hệ cơ sở dữ liệu như MySQL, PostgreSQL, SQLite, và SQL Server Điều này cho phép chọn cơ sở dữ liệu phù hợp với nhu cầu cụ thể của ứng dụng

2 Tạo Schema bằng mã (Code-First): Prisma sử dụng ngôn ngữ lập trình (TypeScript hoặc JavaScript) để định nghĩa schema của cơ sở dữ liệu Điều này giúp tận dụng tính linh hoạt của mã nguồn để quản lý cấu trúc cơ sở dữ liệu

3 Migrate dữ liệu: Prisma cung cấp các công cụ mạnh mẽ để quản lý quá trình migrate cơ sở dữ liệu, giúp bạn duy trì và cập nhật cấu trúc cơ sở dữ liệu một cách dễ dàng khi ứng dụng phát triển Prisma giúp làm giảm độ phức tạp trong việc tương tác với cơ sở dữ liệu, tăng tính hiệu quả và linh hoạt của quá trình phát triển ứng dụng

Một số đặc điểm quan trọng của Firebase Storage:

1 Lưu trữ an toàn và linh hoạt: Firebase Storage cung cấp một nơi an toàn để lưu trữ dữ liệu trên đám mây với sự hỗ trợ của hạ tầng an toàn của Google

2 Tích hợp dễ dàng với Firebase: Firebase Storage tích hợp chặt chẽ với các dịch vụ khác của Firebase, như Firebase Realtime Database, Firebase Authentication, và Firebase Hosting Ngoài ra Firebase cũng dễ dàng tích hợp vào ứng dụng di động thông qua các thư viện SDK chính thức được cung cấp bởi Firebase

2.6 Google Cloud – Speech to text

Speech to Text là công nghệ nhận dạng tiếng nói để tạo ra chuỗi văn bản tương ứng Tiếng nói sẽ được ghi nhận qua microphone và lưu trữ trong máy tính dưới dạng các tín hiệu số

Trang 14

Cloud Text-to-Speech sử dụng “WaveNet” – công nghệ giọng nói được phát triển bởi DeepMind, giúp các nhà phát triển có thể xây dựng các sản phẩm như:

- Hệ thống tương tác tự động bằng lời thoại cho các Call Center (Interactive Voice Response)

- Chức năng Talkback của các sản phẩm IoT (TV, ô tô, robot, etc.)

- Chuyển đổi nội dung văn bản (tin tức, sách) sang giọng nói (Podcast, Audiobook, etc)

Cloud Text-to-Speech có thể triển khai với 12 ngôn ngữ (không có tiếng Việt), bao gồm 32 kiểu giọng nói khác nhau Ngoài ra, nhà phát triển có thể tuỳ chỉnh âm lượng, tốc độ nói, định dạng âm thanh (MP3, WAV) theo nhu cầu sử dụng

Dựa theo cuộc khảo sát năm 2023, Google Cloud đứng thứ 2 về độ chính xác của so với các dịch vụ Speech To Text khác như IBM, Amazon

Hình 1 So sánh độ chính xác của các dịch vụ hỗ trợ Speech To Text

2.7 Tổng quan về backend server

Trong phạm vi đồ án này, nhóm chúng tôi quyết định xây dựng back end server bằng JavaScript trên môi trường NodeJS, định nghĩa và lưu dữ liệu trên Prisma Chức năng chính của server là nhận file ghi âm từ front end và trả về đoạn văn bản tương ứng với file ghi âm đó

Chúng tôi sử dụng Firebase Storage để lưu trữ file ghi âm, đồng thời tích hợp Google Cloud – Speech To Text để chuyển đổi file ghi âm thành đoạn văn bản Kết quả được trả về front end thông qua API và lưu trữ trong Prisma

Trang 15

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.1 Đối tượng người dùng

Đối tượng người dùng chính của ứng dụng là học sinh, sinh viên hoặc bất cứ người dùng cá nhân nào có nhu cầu ghi âm các cuộc trò chuyện, bài giảng, hội thảo, và sau đó chuyển thành văn bản phục vụ cho việc học tập và làm việc

Ngoài ra, ứng dụng cũng được xây dựng nhằm hướng đến đối tượng người dùng là người học tiếng Anh Người có nhu cầu học tiếng Anh có thể sử dụng phần mềm để nâng cao kỹ năng nghe và phát âm bằng cách ghi lại bài nói của mình và nghe lại khi cần thiết

3.2 Xây dựng hệ thống

3.2.1 Công nghệ sử dụng

Ngôn ngữ lập trình: TypeScript UI Framework: React Native IDE: Visual Studio Code Server: Expressjs, Prisma Database: Firebase, SQLite

3.2.2 Sơ đồ Use case

Trang 16

Hình 2 Sơ đồ Use case

3.2.3 Mô tả Use cases

STT Chức năng Mô tả

1 Đăng nhập Có 4 phương thức để người dùng đăng nhập:

+ username và password

Trang 17

+ email và password + Liên kết với Google

+ Nhận diện vân tay/ khuôn mặt

2 Đăng ký Người dùng tạo tài khoản mới bằng cách cung cấp username, email, password 3 Quên mật khẩu Ứng dụng sẽ yêu cầu người dùng nhập địa

chỉ email, sau đó mã code sẽ được gửi từ hệ thống về email, cuối cùng người dùng sẽ nhập mã code và đổi mật khẩu mới 4 Thêm mới file ghi âm Người dùng thêm mới một file ghi âm

bằng cách thu âm trực tiếp hoặc đăng tải file ghi âm từ thiết bị

5 Xem file ghi âm Người dùng có thể xem chi tiết một file ghi âm, sửa file, xóa file, sắp xếp field 6 Chia sẻ file ghi âm Hệ thống cho phép người dùng chia sẻ file

ghi âm của mình với người khác bằng cách cung cấp email của người nhận 7 Tạo nhóm Hệ thống hỗ trợ tạo nhóm, người dùng có

thể tạo hoặc tham gia vào các nhóm khác nhau, chia sẻ file ghi âm cho các thành viên trong nhóm

8 Xem thông báo Người dùng nhận và xem thông báo khi được mời vào một nhóm

Bảng 1 Bảng mô tả Use cases

3.2.4 Đặc tả Use case Use case 1: Đăng nhập

Mô tả Người dùng đăng nhập bằng username hoặc email và password

Luồng chính 1 Hệ thống hiển thị các trường nhập liệu tương ứng

Trang 18

2 Người dùng nhập username hoặc email, password và bấm nút “Đăng nhập”

3 Hệ thống kiểm tra nếu các thông tin hợp lệ, hệ thống điều hướng người dùng đến màn hình Home

Luồng phụ

Ở bước 1, nếu người dùng chọn đăng nhập bằng google 1.a Người dùng bấm nút “Đăng nhập bằng google” 1.b Hệ thống hiện popup hiển thị các tài khoản google của người dùng

1.c Người dùng chọn 1 tài khoản google để đăng nhập 1.d Hệ thống kiểm tra, nếu tài khoản của người dùng không có trong hệ thống thì đăng ký tài khoản mới cho nguòi dùng Ngược lại, quay lại bước 3

Ngoại lệ

Ở bước 3, nếu người dùng không nhập đầy đủ thông tin email hoặc username và password, hiển thị thông báo lỗi Ở bước 3, nếu người dùng chưa xác nhận email, hệ thống hiển thị thông báo lỗi

Use case 2: Đăng ký

Mô tả Người dùng tạo tài khoản mới bằng cách cung cấp username, email, password

4 Người dùng xác nhận email và đăng nhập vào hệ thống

Trang 19

Luồng phụ Không có

Ngoại lệ Ở bước 3, nếu người dùng không nhập đầy đủ thông tin email, username và password, hiển thị thông báo lỗi

Use case 3: Quên mật khẩu

Mô tả Hệ thống gửi link code reset password khi người dùng quên mật khẩu

Luồng chính

1 Người dùng bấm nút “Quên mật khẩu”

2 Hệ thống hiển thị ô text input yêu cầu người dùng nhập email

3 Người dùng cung cấp email và bấm nút “Tiếp theo” 4 Hệ thống kiểm tra nếu email hợp lệ, gửi mã code 5 Người dùng nhập mã code và bấm nút “Tiếp theo” 6 Hệ thống kiểm tra nếu mã code hợp lệ, hiển thị text

Use case 4: Thêm mới file ghi âm

Mô tả Người dùng thêm mới một file ghi âm bằng cách thu âm trực tiếp hoặc đăng tải một file ghi âm từ thiết bị

Luồng chính 1 Người dùng bấm nút “Thu âm” để thu âm trực tiếp Sau khi thu âm, người dùng bấm nút “Lưu”

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan