Tải bản đầy đủ (.pdf) (75 trang)

Thuyết minh phim tự động sử dụng tổng hợp tiếng nói tiếng việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.81 MB, 75 trang )

...

NGUYỄN VĂN NAM

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
------------------------------

NGUYỄN VĂN NAM
LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀN

THUYẾT MINH PHIM TỰ ĐỘNG SỬ DỤNG
TỔNG HỢP TIẾNG NÓI TIẾNG VIỆT

LUẬN VĂN THẠC SĨ KỸ THUẬT
CHUYÊN NGÀNH KỸ THUẬT PHẦN MỀM

KHOÁ – 2016B
Hà Nội – 2019


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN VĂN NAM

THUYẾT MINH PHIM TỰ ĐỘNG SỬ DỤNG
TỔNG HỢP TIẾNG NÓI TIẾNG VIỆT

Chuyên ngành : KỸ THUẬT PHẦN MỀM

LUẬN VĂN THẠC SĨ KỸ THUẬT



NGƯỜI HƯỚNG DẪN:
TS. NGUYỄN THỊ THU TRANG

Hà Nội – Năm 2019


LỜI CẢM ƠN
Để có ngày hồn thành luận văn tốt nghiệp này, lời đầu tiên em xin chân thành
cảm ơn các thầy, cô và cán bộ giảng dạy tại trường Đại học Bách Khoa Hà Nội, các
thầy cô trong viện Công nghệ thông tin & Truyền thông và đặc biệt là các thầy cô
trong bộ môn Công nghệ phần mềm đã tận tậm chỉ dạy em trong suốt thời gian học
vừa qua.
Em xin trận trọng gửi lời cảm ơn đến Tiến sĩ Nguyễn Thị Thu Trang, Bộ môn
Công nghệ phần mềm, Viện CNTT&TT, Trường Đại học Bách Khoa Hà Nội. Cảm
ơn cô trong thời gian em thực hiện luận văn đã nhiệt tình hướng dẫn, chỉ bảo những
kiến thức cũng như định hướng cho em thực hiện đề tài này.
Em cũng xin gởi lời cảm ơn chân thành đến các bạn học lớp 16BKTPM đã luôn
đồng hành giúp đỡ và sẻ chia cùng tơi những khó khăn trong q trình học tập và
làm luận văn.
Cuối cùng, em xin cảm ơn gia đình, những người ln động viên và giúp đỡ em
về mặt tinh thần, để em có động lực và vững tin đạt đến kết quả cuối cùng này.
Hà Nội, ngày 24 tháng 11 năm 2019
Tác giả LVThS

Nguyễn Văn Nam

1



LỜI CAM ĐOAN
Tôi - Nguyễn Văn Nam - cam kết luận văn là cơng trình nghiên cứu của bản thân
tơi dưới sự hướng dẫn của TS. Nguyễn Thị Thu Trang.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép tồn văn của
bất kỳ cơng trình nào khác.
Hà Nội, ngày 24 tháng 11 năm 2019
Tác giả LVThS

Nguyễn Văn Nam

2


MỤC LỤC
LỜI CAM ĐOAN ............................................................................................... 2
MỤC LỤC .......................................................................................................... 3
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ....................................... 6
DANH MỤC HÌNH ............................................................................................ 7
DANH MỤC BẢNG ........................................................................................... 9
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI ............................................................... 10
1.1

Đặt vấn đề ...................................................................................... 10

1.2

Mục tiêu và phạm vi đề tài .............................................................. 11

1.3


Bố cục luận văn .............................................................................. 12

CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU ................................ 13
2.1

Khảo sát hiện trạng ......................................................................... 13

2.2

Tổng quan các dịch vụ của ứng dụng .............................................. 14

2.2.1

Dịch vụ quản lý xác thực người dùng ............................................. 16

2.2.2

Dịch vụ quản lý tổng hợp thuyết minh ............................................ 17

2.2.3

Dịch vụ quản lý phim và thuyết minh ............................................. 17

2.3

Đặc tả use case ............................................................................... 18

2.3.1

Đặc tả use case tổng hợp thuyết minh ............................................. 18


2.3.2

Đặc tả use case cấu hình phụ đề ...................................................... 19

2.3.3

Đặc tả use case xem phim ............................................................... 20

2.4

Tổng kết ......................................................................................... 20

CHƯƠNG 3: GIẢI PHÁP THUYẾT MINH PHIM TỰ ĐỘNG ...................... 21
3.1

Thiết kế kiến trúc ............................................................................ 21

3.1.1

Kiến trúc tổng quan ........................................................................ 21

3.1.2

Kiến trúc front-end ......................................................................... 22

3.1.3

Kiến trúc back-end.......................................................................... 24


3.2

Giải pháp tổng hợp thuyết minh phim ............................................. 25

3.2.1

Giới thiệu về MaryTTS và định dạng SSML................................... 25

3.2.2

Quá trình tổng hợp file âm thanh .................................................... 26
3


3.3

Cách thức trình chiếu phim thuyết minh tự động............................. 29

3.3.1

Phương thức trình chiếu phim và thuyết minh................................. 29

3.3.2

Cơ chế đồng bộ phim và thuyết minh.............................................. 31

3.4

Kết chương ..................................................................................... 32


CHƯƠNG 4: PHÁT TRIỂN ỨNG DỤNG ..................................................... 33
4.1

Công nghệ sử dụng ......................................................................... 33

4.1.1

NodeJS ........................................................................................... 33

4.1.2

Bảo mật API với Json web token – JWT ......................................... 35

4.1.3

Elastic Search ................................................................................. 36

4.1.4

ReactJS ........................................................................................... 36

4.1.5

Android platform ............................................................................ 41

4.2

Thư viện API .................................................................................. 45

4.2.1


MongooseJS ................................................................................... 45

4.2.2

Redux ............................................................................................. 45

4.2.3

ObjectBox ...................................................................................... 46

4.2.4

Glide ............................................................................................... 48

4.2.5

Volley ............................................................................................. 48

4.3

Phát triển ứng dụng......................................................................... 48

4.3.1

Thư viện và công cụ sử dụng .......................................................... 48

4.3.2

Kiến trúc ứng dụng ......................................................................... 50


4.3.3

Thiết kế chi tiết ............................................................................... 51

4.3.4

Kết quả đạt được............................................................................. 60

4.3.3

Minh họa các chức năng chính........................................................ 64

4.4

Thử nghiệm .................................................................................... 68

4.4.1

Dữ liệu thử nghiệm ......................................................................... 68

4.4.2

Kết quả thử nghiệm ........................................................................ 68

4.5

Đánh giá ......................................................................................... 69

4.5.1


Ưu điểm.......................................................................................... 69

4.5.2

Nhược điểm .................................................................................... 69

4


4.6

Kết chương ..................................................................................... 70

KẾT LUẬN....................................................................................................... 71
DANH MỤC CÁC TÀI LIỆU THAM KHẢO .................................................. 72

5


DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
API
EUD
RDBMS

SQL

HTML
URI
JSON


Application Programming Interface.
Giao diện lập trình ứng dụng.
End-User Development.
Phát triển ứng dụng người dùng cuối
Relational Database Management System.
Hệ quản trị cơ sỡ dữ liệu quan hệ.
Structured Query Language.
Ngôn ngữ truy vấn mang tính cấu trúc, được thiết kế
để quản lý dữ liệu trong RDBMS.
HyperText Markup Language.
Ngôn ngữ đánh dấu siêu văn bản.
Uniform Resource Identifier.
Một chuỗi các ký tự dùng để xác định một tài nguyên.
JavaScript Object Notation.
Một kiểu định dạng dữ liệu trong ngôn ngữ JavaScript

REST

Representational State Transfer.
Một chuẩn thiết kế phần mềm, nó quy định cách mà
client và server sẽ tương tác với nhau.

CNTT

Công nghệ thông tin.

TTS

Hệ thống tổng hợp tiếng nói


LVTN

Luận văn tốt nghiệp

MVVM

Model – View – ViewModel

6


DANH MỤC HÌNH
Hình 1. Tổng quan chức năng ....................................................................... 14
Hình 2. Biểu đồ use case tổng quan ............................................................... 15
Hình 3. Biểu đồ use case quản lý xác thực người dùng .................................. 16
Hình 4. Biểu đồ use case cho dịch vụ quản lý tổng hợp thuyết minh ............. 17
Hình 5. Biểu đồ use case dịch vụ quản lý phim và thuyết minh ..................... 18
Hình 6. Kiến trúc ứng dụng thuyết minh phim .............................................. 21
Hình 7. Kiến trúc mobile-front-end ............................................................... 22
Hình 8. Kiến trúc web-front-end ................................................................... 23
Hình 9. Kiến trúc microservice...................................................................... 24
Hình 10. Quá trình tạo file âm thanh với đầu vào là file srt ........................... 27
Hình 11. Trình chiếu phim thuyết minh tự động ............................................ 29
Hình 12. Cấu trúc HTML DOM [8] .............................................................. 37
Hình 13. Server side rendering [9]................................................................. 39
Hình 14. Client side rendering [9] ................................................................. 41
Hình 15. Các thành phần chính của Android ................................................. 42
Hình 16. Quản lý dữ liệu có redux và khơng có redux [16] ........................... 46
Hình 17. Kiến trúc mobile front-end.............................................................. 50

Hình 18. Kiến trúc back-end ......................................................................... 51
Hình 19. Kiến trúc dịch vụ quản lý xác thực người dùng ............................... 52
Hình 20. Các thành phần trong dịch vụ tổng hợp thuyết minh ....................... 53
Hình 21. Kiến trúc dịch vụ quản lý phim và thuyết minh............................... 54
Hình 22. Thiết kế cơ sở dữ liệu trong Database ............................................. 56
Hình 23. Kiến trúc ứng dụng Android ........................................................... 57
Hình 24. Thiết kế giao diện ứng dụng Android front-end .............................. 59
Hình 25. Cấu trúc gói xây dựng dịch vụ back-end server............................... 61
Hình 26. Cấu trúc gói ứng dụng mobile front-end ......................................... 62
Hình 27. Màn hình danh sách phim đã thuyết minh ....................................... 64
Hình 28. Màn hình xem phim........................................................................ 65
7


Hình 29. Màn hình thơng tin cá nhân ............................................................ 66
Hình 30. Màn hình quản lý tổng hợp thuyết minh ......................................... 67

8


DANH MỤC BẢNG
Bảng 1. Đặc tả use case tổng hợp thuyết minh ................................................... 18
Bảng 2. Đặc tả use case cấu hình subtitle........................................................... 19
Bảng 3. Đặc tả use case xem phim..................................................................... 20
Bảng 4. Trạng thái đồng bộ dùng phép AND ..................................................... 31
Bảng 5. Trạng thái đồng bộ trễ. ......................................................................... 31
Bảng 6. Thuật ngữ trong mongoDB và SQL ...................................................... 34
Bảng 7. Kiểu dữ liệu đặc biệt trong MongoDB .................................................. 35
Bảng 8. Danh sách công cụ sử dụng .................................................................. 48
Bảng 9. Danh sách thư viện sử dụng.................................................................. 48

Bảng 10. Các đối tượng trong ứng dụng ............................................................ 55
Bảng 11. Kết quả đạt được ................................................................................ 60
Bảng 12. Dữ liệu thử nghiệm............................................................................. 68
Bảng 13. Kết quả thử nghiệm tổng hợp ............................................................. 68

9


CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1.1 Đặt vấn đề
Trong các hình thức giải trí thì xem phim là hình thức giải trí phổ biến và lứa tuổi
xem phim cũng rất rộng, từ người già, thanh thiếu niên cho đến trẻ em đều có nhu
cầu xem phim. Xét theo ngơn ngữ, chúng ta có thể chia làm hai loại là phim trong
nước và phim nước ngồi, trong đó thị trường phim trong nước chiếm tỉ lệ thấp hơn
các phim nước ngoài. Các phim nước ngồi được trình chiếu lại chia làm hai loại là
phim phụ đề và phim thuyết minh, trong đó phim phụ đề chiếm tỉ lệ nhiều hơn do tạo
ra nhanh hơn, tốn kém ít chi phí hơn và nhiều người thích xem phim phụ đề hơn do
phim phụ đề vẫn đảm bảo được chất giọng của nhân vật trọng phim. Tuy vậy vẫn rất
có nhiều người thích xem phim thuyết minh hay chỉ xem được phim thuyết minh như:
người già mắt kém, trẻ em chưa biết đọc hay những người khuyết tật gặp những hội
chứng như khó đọc v.v. Tuy nhiên thị trường phim hiện tại lại chưa đáp ứng được
nhu cầu xem phim thuyết minh của họ. Dưới đây là một số lý do:
Chưa có thuyết minh: Để có một phim thuyết minh hồn chỉnh ta phải đi qua rất
nhiều cơng đoạn: tìm giọng thuyết minh phù hợp, tìm địa điểm thuyết minh sao cho
khơng có tạp âm, đầu tư trang thiết bị cho phim… là các đầu vào cho phim. Tiếp đó
là đầu ra, sau khi cho ra các đoạn ghi âm, ta lại phải chỉnh sửa lại video và ghép các
âm thanh video với các đoạn ghi âm vừa tạo ra. Nói chung là để làm ra một phim
thuyết minh cần tốn nhiều chi phí về thời gian và tiền bạc, do vậy các phim tỉ lệ người
xem thấp thường khơng có thuyết minh.
Giọng thuyết minh chưa được đa dạng: Thị trường phim là chung cho cả nước,

tuy nhiên không ai bỏ thời gian và tiền bạc ra để thuyết minh để đáp ứng cho từng
vùng, do vậy một số phim thuyết minh được đánh giá là khó nghe bởi vì họ khơng
quen với giọng thuyết minh trong phim.
Từ các điều nêu trên em thấy cần đưa ra một ứng dụng có thể thuyết minh phim tự
động, nó giúp ta có thể giảm thiểu chi phí để tạo ra các bộ phim thuyết minh. Ứng
dụng thuyết minh phim tự động là ứng dụng được đưa ra để thay thế cho quá trình
thuyết minh phim, đáp ứng được các nhu cầu nêu trên. Do thị trường hiện tại thì phim
10


phụ đề nhiều hơn rất nhiều so với phim thuyết minh và quá trình tạo phụ đề nhanh
hơn quá trình lồng tiếng nên mục tiêu của ứng dụng là tạo ra thuyết minh phim dựa
vào các tập tin phụ đề đưa vào. Bằng việc sử dụng ứng dụng, người dùng có thể tạo
ra các tập tin âm thanh với nội dung trùng với nội dung video nhờ vào các tập tin phụ
đề của video, từ tập tin âm thanh được tạo ra ứng dụng hỗ trợ chạy song song.
Tổng hợp tiếng nói là q trình tạo ra tiếng nói một cách nhân tạo. Một trong các
hình thức đặc trưng của tổng hợp tiếng nói là text-to-speech, nó chuyển từ nội dung
bằng văn bản sang nội dung bằng âm thanh. Một phần mềm text-to-speech về cơ bản
nó nhận đầu vào là một đoạn văn bản và chuyển đổi cho ra một tập tin âm thanh mà
ta có thể sử dụng.
Ứng dụng của tổng hợp tiếng nói được áp dụng cho nhiều đối tượng, lĩnh vực khác
nhau trong cuộc sống. Chẳng hạn như lĩnh vực giải trí đa phương tiện: Người đi làm,
trong khi lái xe họ không thể tập trung vào việc đọc văn bản hoặc khi đi làm về họ
không muốn căng mắt vào đọc các đoạn văn bản hiển thị trên màn hình nữa. Ngồi
ra nó cịn được áp dụng hỗ trợ cho người mù, người gặp hội chứng khó đọc, …
1.2 Mục tiêu và phạm vi đề tài
Từ các vấn đề được đề cập đến ở trên, mục tiêu của luận văn là xây dựng một ứng
dụng cho phép người dùng tải lên phim, tải lên tệp phụ đề cho phim, chỉnh sửa phụ
đề, tạo thuyết minh cho phim với đầu vào là tệp phụ đề đã tải lên. Ứng dụng tích hợp
hệ thống tổng hợp tiếng nói Vbee của TS Nguyễn Thị Thu Trang để tổng hợp ra các

tập tin âm thanh thuyết minh.
Ứng dụng được xây dựng có định hướng là một ứng dụng xem phim nên cũng sẽ
cung cấp một số chức năng khác như:
o Đăng ký, đăng nhập, đăng xuất
o Quản lý phim người dùng đã đăng
o Quản lý phụ đề
o Xem phim thuyết minh

11


1.3 Bố cục luận văn
Sau khi xác định được mục tiêu, phạm vi đề tài và định hướng giải pháp, phần còn
lại của luận văn này được bố cục như sau.
Chương 2 đi vào phân tích xác định tổng quan chức năng và đặc tả cụ thể chức
năng của ứng dụng tạo phim thuyết minh tự động. Chương 3 đi sâu vào xây dựng giải
pháp thuyết minh phim tự động: kiến trúc ứng dụng, đặc tả chi tiết các thành phần
ứng dụng.
Dựa trên các phân tích yêu cầu ở chương 2 và các thiết kế hệ thống và thiết kế chi
tiết ở chương 3, chương 4 sẽ trình bày về việc xây dựng sản phẩm cụ thể là “Ứng
dụng tạo phim thuyết minh tự động”. Chương 4 cũng sẽ đề cập chi tiết các công nghệ
sử dụng để phát triển sản phẩm và các kết quả thực tế đã đạt được cho đến thời điểm
làm luận văn.
Cuối cùng, phần kết luận tổng hợp lại quá trình phát triển ứng dụng, những kết quả
đạt được, những điều chưa làm được, những bài học kinh nghiệm cần rút ra. So sánh
kết quả ứng dụng hoàn thành với những ứng dụng tương tự đã có mặt trên thị trường.
Nêu ra định hướng phát triển của ứng dụng trong tương lai đi kèm với đó là những
cơng việc, chức năng cần phát triển hoặc nâng cấp.

12



CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU
2.1 Khảo sát hiện trạng
Trên các trang web xem phim lớn như “phimmoi.net” thì lượt xem của phim thuyết
minh và phim có phụ đề thơng thường khơng lệch nhau nhiều, từ đó cho thấy nhu cầu
xem phim thuyết minh rất lớn nhưng vấn đề là nguồn phim không nhiều và chất lượng
không được đảm bảo cho nên không đáp ứng được nhu cầu người xem phim thuyết
minh. Hiện nay chưa có bất kì ứng dụng xem phim trực tuyến nào cho phép người
dùng đăng tải phim và phụ đề sau đó chuyển thành phim thuyết minh. Hiện tại các
trang xem phim lớn ở Việt Nam có lượng dữ liệu phim rất lớn, nhưng phần lớn chỉ là
phim và phụ đề. Đặc biệt là những bộ phim mới ra mắt, sẽ dễ dàng tìm được phim
kèm với phụ đề, nhưng sẽ rất lâu sau mới xuất hiện phim có thuyết minh. Khi đó
người dùng muốn xem những bộ phim mới kèm thuyết minh thì phải đợi một thời
gian, thường là khá lâu đến khi website đó cập nhập phim.
Việc phải mất khá nhiều thời gian và cơng sức để tìm kiếm và xem một bộ phim
phần nào ảnh hưởng đến cảm giác thoải mái khi xem phim. Từ những vấn đề còn tồn
đọng trong việc tìm kiếm và xem phim thuyết minh, em đã thực hiện xây dựng ứng
dụng cho phép người dùng tự đăng tải phim có phụ đề, tạo thuyết minh cho phim một
cách tự động và sau đó có thể xem phim thuyết minh trên ứng dụng. Khi những phim
mới xuất hiện, người dùng muốn có phim thuyết minh sẽ đăng tải lên ứng dụng này,
khi đó ứng dụng có được lợi thế là ln có những bộ phim mới nhất được cập nhật.
Trên nền tảng ứng dụng thuyết minh phim tự động gồm hệ thống ứng dụng công
nghệ tổng hợp tiếng nói đầu vào là một file dạng text của phụ đề, đầu ra của hệ thống
xử lý là file audio tương ứng. Các đối tượng của ứng dụng là người dùng có nhu cầu
xem phim thuyết minh, đã xác định được phim mình muốn xem và phụ đề của phim
tương ứng. Thực tế một phim sẽ có nhiều phụ đề được chia sẻ do có nhiều nhóm làm
phụ đề cho các chất lượng/nguồn phim khác nhau, các phụ đề này có thể khác nhau về
thời gian, giãn cách giữa các đoạn hoặc có chứa các nội dung về đánh dấu. Với thực


13


trạng đó đề tài đề xuất xây dựng Dịch vụ quản lý tổng hợp thuyết minh để lưu trữ và
xử lý phụ đề sau đó thực hiện tổng hợp thuyết minh từ phụ đề sau đó.
Để bảo mật thơng tin, đảm bảo tính riêng tư của người dùng, phần mềm yêu cầu
mỗi người dùng cần phải đăng nhập, việc đăng nhập để xác thực danh tính, bảo mật
thơng tin của phần mềm, cũng như tránh những xâm phạm khơng nhìn thấy từ bên
ngoài, luận văn xây dựng Dịch vụ đăng nhập xác thực người dùng bằng thư điện tử
và mật khẩu cho từng người dùng trong ứng dụng.
Đầu ra của dụng dịch vụ tổng hợp thuyết minh là một file âm thanh thuyết minh
tương ứng. Để xem được phim với file âm thanh thuyết minh này người dùng cần phát
file âm thanh thuyết minh và file video phim tương ứng. Ngồi ra từ một file phụ đề
cũng sẽ có thể có nhiều file thuyết minh tương ứng (mỗi lần thực hiện tạo thuyết minh
với cấu hình và file phụ đề khác nhau sẽ cho ra một file âm thanh thuyết minh khác
nhau). Luận văn xây dựng Dịch vụ quản lý phim và thuyết minh cho người dùng có
các quyền tùy chỉnh sửa, xóa, thêm mới, xem phim và thuyết minh.
2.2 Tổng quan các dịch vụ của ứng dụng

Hình 1. Tổng quan chức năng
14


Luồng hoạt động của ứng dụng đầu tiên từ người sử dụng dịch vụ tạo một tài khoản
từ giao diện đăng ký, người dùng sau khi đăng nhập có thể sử dụng các chức năng
của ứng dụng. Hình 1 mơ tả phân cấp chức năng được xây dựng trong ứng dụng.
Biểu đồ use case tổng quan:

Hình 2. Biểu đồ use case tổng quan
Hình 2 mơ tả ứng dụng có 3 tác nhân chính: khách, người dùng và TTS Engine.

Khách có thể đăng ký tài khoản để trở thành người dùng của ứng dụng, sau khi
đăng nhập người dùng có thể sử dụng các chức năng của ứng dụng bao gồm tải lên
phim, tải lên phụ đề, tạo thuyết minh cho phim.
15


TTS Engine là hệ thống tổng hợp tiếng nói, có vai trò tiền xử lý nội dung đầu vào
là file text đã được chuẩn hóa sau đó chuyển từ dạng văn bản sang dạng tiếng nói
dưới định dạng tệp âm thanh theo các giọng đọc tùy chọn.
Trong ứng dụng thuyết minh phim tự động, TTS Engine đóng vai trị là nơi cung
cấp tệp thuyết minh âm thanh đã tổng hợp cho ứng dụng. Các tệp âm thanh thuyết
minh có trong ứng dụng không thể thêm vào một cách tùy tiện mà chỉ có thể tổng
hợp thơng qua TTS Engine.
2.2.1 Dịch vụ quản lý xác thực người dùng
Dịch vụ quản lý xác thực người dùng cho phép khách đăng ký tài khoản thông qua
tài khoản thư điện tử và mật khẩu, việc đăng nhập và xác thực tập trung và lưu thơng
tin về người dùng. Chức năng chính của dịch vụ này là đăng nhập một lần sau đó sử
dụng tài khoản này để đăng nhập các dịch vụ quản lý tổng hợp thuyết minh và quản
lý phim. Hình 3 mơ tả tương tác người dùng đến dịch vụ quản lý xác thực người dùng.

Hình 3. Biểu đồ use case quản lý xác thực người dùng
16


2.2.2 Dịch vụ quản lý tổng hợp thuyết minh
Dịch vụ quản lý tổng hợp thuyết minh cho phép lưu trữ và quản lý phụ đề của phim
muốn tổng hợp thuyết minh. Hình 4 mơ tả tương tác người dùng và dịch vụ quản lý
tổng hợp thuyết minh.

Hình 4. Biểu đồ use case cho dịch vụ quản lý tổng hợp thuyết minh

Ba chức năng quan trọng trong dịch vụ này là chỉnh sửa lỗi phụ đề, cấu hình phụ
đề và tổng hợp thuyết minh. Đầu tiên người dùng sẽ upload file phụ đề cần tổng hợp
thông qua chức năng CURD phụ đề, sau đó sử dụng chức năng chỉnh sửa lỗi phụ đề
để loại bỏ các lỗi như lỗi chính tả, loại bỏ watermark. Chức năng cấu hình phụ đề cho
phép người dùng chọn các cấu hình cho phụ đề sẽ dùng để tổng hợp (VD: giọng nam
hay nữ, vùng miền), chức năng tổng hợp thuyết minh gọi đến hệ thống TTS Engine
chuyển từ file text nội dung sách sang file tiếng nói định dạng mp3.
2.2.3 Dịch vụ quản lý phim và thuyết minh
Dịch vụ quản lý phim và thuyết minh cho phép lưu trữ và quản lý phim người dùng
đã tải lên và các file âm thanh thuyết minh người dùng đã tổng hợp được. Ngoài ra
luận văn cũng xây dựng chức năng xem phim, cho phép người dùng xem phim thuyết
17


minh trực tiếp trên ứng dụng với phim và thuyết minh đã tổng hợp được, phim sẽ
được phát song song với phụ đề, đảm bảo đồng bộ trạng thái giữa video phim và âm
thanh thuyết minh. Hình 5 mơ tả tương tác người dùng và dịch vụ quản lý phim và
thuyết minh.

Hình 5. Biểu đồ use case dịch vụ quản lý phim và thuyết minh
2.3 Đặc tả use case
Phần này em sẽ đưa ra đặc tả chi tiết cho các chức năng trong ứng dụng. Để tránh
lan man em chỉ đưa đặc tả của một số chức năng. Như đã đề cập ở trên, các chức năng
quan trọng sẽ được đặc tả bao gồm: tổng hợp thuyết minh, cấu hình phụ đề và xem
phim.
2.3.1 Đặc tả use case tổng hợp thuyết minh
Bảng 1. Đặc tả use case tổng hợp thuyết minh
Mã use case

UC001


Tác nhân

Thành viên

Tiền
kiện

Tên use case

Tổng hợp thuyết minh

điều Người dùng đã đăng nhập, là chủ của phim và đang trong màn hình
quản lý sub

18


Luồng
sự
kiện chính
(Thành cơng)

STT
1
2
3
4
5
6


Thực hiện bởi
Tác nhân
Hệ thống
Hệ thống
Tác nhân
Hệ thống
Hệ thống

Hành động
Chọn nút tổng hợp thuyết minh
Kiểm tra đã tải lên sub
Hiện form tổng hợp
Điền thông tin tổng hợp và nhấn nút lưu
Kiểm tra thông tin được điền vào form
Lưu thông tin thuyết minh vào hệ thống,
gửi yêu cầu tổng hợp
7
Hệ thống
Hiển thị trạng thái thuyết minh
8
Tác nhân
Nhấp nút xác nhận
9
Hệ thống
Quay về màn hình quản lý tổng hợp
Luồng
sự STT Thực hiện bởi Hành động
kiện thay thế 3a
Hệ thống

Nếu chưa tải lên sub, thông báo lỗi
6a
Hệ thống
Nếu form đăng ký được điền không hợp
lệ hoặc thiếu, thông báo lỗi và yêu cầu
tác nhân kiểm tra lại
6b
Hệ thống
Nếu yêu cầu tổng hợp khơng được thực
thi thì xóa thơng tin tổng hợp vừa lưu vào
trong cơ sở dữ liệu và thông báo lỗi
7a
Hệ thống
Nếu hệ thống lưu file không thành công,
hiển thị thông báo lỗi
Hậu
điều File thuyết minh được tạo và lưu vào hệ thống cùng với đó là trạng
kiện
thái phim sẽ là hồn thành.
2.3.2 Đặc tả use case cấu hình phụ đề
Bảng 2. Đặc tả use case cấu hình subtitle
Mã use case UC002
Tác nhân

Tên use case

Cấu hình subtitle

Thành viên


Tiền điều Tác nhân đã đăng nhập và đang ở màn hình quản lý subtitle
kiện
Luồng
sự STT Thực hiện bởi Hành động
kiện chính
1
Tác nhân
Nhấp vào nút cấu hình sub và chuyển sang
(Thành
màn hình cấu hình subtitle
cơng)
2
Hệ thống
Lấy thơng tin subtitle
3
Hệ thống
Hiển thị subtitle lên màn hình chỉnh sửa
4
Tác nhân
Chỉnh sửa thơng tin theo form(*)
5
Tác nhân
Nhấn lưu dữ liệu chỉnh sửa
6
Hệ thống
Lưu lại thông tin chỉnh sửa

19



Luồng
sự STT Thực hiện bởi Hành động
kiện
thay 3a
Hệ thống
Nếu subtitle không tồn tại, thông báo lỗi
thế
6a
Hệ thống
Nếu không thể lưu lại, thơng báo lỗi
Hậu
điều File subtitle được cấu hình và lưu vào ứng dụng.
kiện
2.3.3 Đặc tả use case xem phim
Bảng 3. Đặc tả use case xem phim
Mã use case UC003
Tác nhân

Tên use case

Xem phim

Thành viên

Tiền điều Tác nhân đã đăng nhập và đang ở màn hình danh sách phim
kiện
Luồng
sự STT Thực hiện bởi Hành động
kiện chính
1

Tác nhân
Nhấp vào nút xem phim tại bất kỳ phim
(Thành
nào đang hiển thị trong danh sách
công)
2
Hệ thống
Lấy thông tin phim, lấy thông tin thuyết
minh phim mặc định
3
Hệ thống
Chơi video phim và audio thuyết minh
đồng bộ theo thời gian
4
Tác nhân
Nhấn vào nút tạm dừng
5
Hệ thống
Tạm dừng việc chơi video phim và audio
lồng tiếng
6
Hệ thống
Hiển thị trạng thái kết thúc phim
Luồng
sự STT Thực hiện bởi Hành động
kiện
thay 3a
Hệ thống
Nếu phim chưa có thuyết minh, hiển thị
thế

thơng báo
3b
Hệ thống
Trong khi đang chơi video và audio cần
đồng bộ về thời gian để khơng bị tình
trạng video và audio thuyết minh bị lệch
nhau
2.4 Tổng kết
Chương 2 đã trình bày hiện trạng chung của việc xem phim, lợi ích của việc ứng
dụng công nghệ thông tin để tạo thuyết minh cho phim một cách tự động. Mô tả tổng
quan ứng dụng tạo thuyết minh phim tự động, các dịch vụ xác thực người dùng, dịch
vụ tổng hợp thuyết minh, dịch vụ quản lý phim và thuyết minh. Đặc tả các chức năng
cụ thể của ứng dụng.

20


CHƯƠNG 3: GIẢI PHÁP THUYẾT MINH PHIM
TỰ ĐỘNG
Chương 2 đã thực hiện khảo sát và đưa ra những yêu cầu về mặt chức năng và phi
chức năng của ứng dụng. Xây dựng được biểu đồ use case tổng quan và phân rã của
ứng dụng. Từ cái nhìn tổng quan đó chương 3 này sẽ xây dựng kiến trúc hệ thống
đáp ứng thực hiện được những chắc năng đã nêu ở chương 2.
3.1 Thiết kế kiến trúc
3.1.1 Kiến trúc tổng quan

Hình 6. Kiến trúc ứng dụng thuyết minh phim

21



Hình 6 mơ tả kiến trúc tổng quan của ứng dụng phim thuyết minh tự động. Từ hình
vẽ, có thể thấy ứng dụng được chia làm 2 phần chính: front-end và back-end (hay
client-side và server-side).
Front-end là phần trực tiếp tương tác với người dùng, thơng qua đây người dùng
sẽ có thể sử dụng các chức năng của ứng dụng. Ứng dụng được xác định sẽ xây dựng
trên hai nền tảng là mobile-front-end và web-front-end. Kiến trúc của front-end sẽ
được mô tả chi tiết ở phần tiếp theo của luận văn.
Back-end được thiết kế theo mơ hình kiến trúc microservice, trong đó bao gồm 3
dịch vụ chính là dịch vụ quản lý xác thực người dùng, dịch vụ quản lý tổng hợp thuyết
minh, dịch vụ quản lý phim và thuyết minh. Dịch vụ quản lý xác thực người dùng
bao gồm chức năng đăng ký, đăng nhập, thay đổi mật khẩu, xác thực tài khoản, đăng
xuất. Dịch vụ quản lý tổng hợp thuyết minh cung cấp các chức năng quản lý phụ đề,
kiểm tra chỉnh sửa lỗi phụ đề, cấu hình phụ đề, tổng hợp thuyết minh. Dịch vụ quản
lý phim và thuyết minh cung cấp chức năng xem phim và quản lý phim, thuyết minh
đã tạo.
Ở hình vẽ cịn đề cập đến hai phần nữa là TTS System và Database, hai phần này
có sự tương tác trực tiếp của ứng dụng xem phim chứ không nằm trong phạm vi thiết
kế, phát triển ứng dụng. Cụ thể, ứng dụng phim thuyết minh sẽ gọi sang TTS System
để yêu cầu tổng hợp file thuyết minh. Database sẽ là nơi lưu trữ dữ liệu, thực hiện
thêm sửa xóa dữ liệu đơn thuần.
3.1.2 Kiến trúc front-end
3.1.2.1 Kiến trúc mobile-front-end

Hình 7. Kiến trúc mobile-front-end
Kiến trúc phần mềm sử dụng trong ứng dụng di động là kiến trúc MVVM. Trong
đó ứng dụng được chia ra 3 thành phần khác nhau Model, View và ViewModel.

22



View: Tương tự như trong mơ hình MVC, là phần giao diện của ứng dụng để hiển
thị dữ liệu và nhận tương tác của người dùng. Một điểm khác biệt so với các ứng
dụng truyền thống là View trong mô hình này tích cực hơn. Nó có khả năng thực hiện
các hành vi và phản hồi lại người dùng thông qua tính năng binding, command.
Model: Cũng tương tự như trong mơ hình MVC. Model là các đối tượng giúp truy
xuất và thao tác trên dữ liệu thực sự.
ViewModel: Lớp trung gian giữa View và Model. ViewModel có thể được xem là
thành phần thay thế cho Controller trong mơ hình MVC. Nó chứa các mã lệnh cần
thiết để thực hiện data binding, command.
3.1.2.2 Kiến trúc web-front-end

Hình 8. Kiến trúc web-front-end
Hình 8 trình bày kiến trúc sử dụng cho web-front-end, kiến trúc Redux. Ứng dụng
thường được phân tách thành các component và các component này sẽ tự quản lý các
trạng thái của chúng mà không cần bất kỳ một thư viện hoặc cơng cụ nào từ bên
ngồi. Cách làm sẽ hoạt động tốt với các ứng dụng có ít component nhưng khi ứng
dụng trở lên lớn hơn thì việc quản lý trạng thái được chia sẻ qua các component sẽ
biến thành các công việc lặt nhặt và rất dễ nhầm lẫn. Sử dụng Redux sẽ giúp cho việc
quản lý trạng thái ứng dụng trở nên đơn giản và dễ dàng.
Web-front-end bao gồm 4 phần chính: Action, Reducer và Store là các thành phần
của Redux và View đại diện cho thành phần giao diện tương tác với người dùng.
Redux bao gồm một Store, Action và Reducer. Các trạng thái của các thành phần
trong View sẽ được đăng ký để kết nối trực tiếp với Store. Bất cứ khi nào một trạng
thái thay đổi, thay vì đi qua nhiều trung gian, nó sẽ chỉ thay đổi ở Store và các thành
23


×