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

Đồ án tốt nghiệp: XÂY DỰNG ỨNG DỤNG SOẠN THẢO ÂM THANH CƠ BẢN TRÊN ANDROID

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 (3.91 MB, 43 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG ỨNG DỤNG SOẠN THẢO ÂM
THANH CƠ BẢN TRÊN ANDROID

Sinh viên thực hiện : ___________
Lớp _______________
Giáo viên hướng dẫn: PGS. ______________

HÀ NỘI __-____
1
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: _____
Điện thoại liên lạc:______ Email: __________________
Lớp:______
Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Hà nội
Thời gian làm ĐATN: Từ _______đến _______________
2. Mục đích nội dung của ĐATN
Xây dựng ứng dụng soạn thảo âm thanh cơ bản trên Android


3. Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu về âm thanh số
- Tìm hiểu định dạng âm thanh WAV
- Phân tích thiết kế hệ thống
- Lập trình ứng dụng trên nền Android, sử dụng Eclipse IDE
4. Lời cam đoan của sinh viên:
Tôi – ______ - cam kết ĐATN 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 PSG.________.
Các kết quả nêu trong ĐATN 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 tháng năm
Tác giả ĐATN
______
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép
bảo vệ:

Hà Nội, ngày tháng năm
Giáo viên hướng dẫn

PGS_________

2
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


LỜI CÁM ƠN
Được sự phân công của Viện công nghệ thông tin và truyền thông Trường Đại học Bách
Khoa Hà Nội và được sự đồng ý của giáo viên hướng dẫn PGS. _________ em đã thực
hiện đề tài “Xây dựng ứng dụng soạn thảo âm thanh cơ bản trên Android” làm đồ án tốt
nghiệp của mình.

Để thực hiện được đồ án này, em xin chân thành cảm ơn các thầy cơ giáo đã hướng dẫn,
giảng dạy trong suốt q trình học tập tại trường. Em xin gửi lời cảm ơn đến thầy giáo
PGS. __________ đã trực tiếp hướng dẫn em thực hiện đồ án này.
Đồ án chắc chắn còn nhiều điểm thiếu sót, em mong nhận được các ý kiến đóng góp, phê
bình của các thầy cơ để có thể hồn thiện hơn kiến thức của mình.
Em xin chân thành cảm ơn !
Sinh viên thực hiện
__________

3
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Đề tài của đồ án tốt nghiệp: “Xây dựng ứng dụng soạn thảo âm thanh cơ bản trên nền tảng
Android”. Sau đây là phần tóm tắt nội dung đồ án tốt nghiệp.
Chương 1: Tác giả đi vào tìm hiểu về lý thuyết cơ bản về âm thanh, tín hiệu âm thanh số,
cũng như về lập trình trên nền Android phục vụ cho việc xây dựng ứng dụng.
Chương 2: Chương này sẽ trình bày về phân tích và thiết kế ứng dụng từ tổng quan đến chi
tiết.
Chương 3:Tiến hành lập trình và cài đặt ứng dụng trên nền Android, trình bày các kết quả
thực hiện khi tiến hành chạy ứng dụng.
Cuối cùng, phần kết luận tác giả đưa ra những kết quả đã đạt được trong đồ án, những
điểm cịn thiếu sót và hướng phát triển ứng dụng trong tương lai.

4
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


MỤC LỤC


PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ........................................................... 2
LỜI CÁM ƠN ................................................................................................................... 3
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP ................................................................ 4
MỞ ĐẦU .......................................................................................................................... 6
DANH MỤC CÁC HÌNH VẼ ........................................................................................... 7
DANH MỤC CÁC BẢNG ................................................................................................ 8
DANH MỤC CÁC THUẬT NGỮ, VIẾT TẮT ................................................................. 9
CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT .............................................................................. 10
I- Tổng quan về âm thanh ................................................................................................ 10
1. Âm thanh là gì ? .......................................................................................................... 10
3. Định dạng âm thanh số WAV ...................................................................................... 11
II- Lập trình trên nền tảng Android ................................................................................. 13
1. Tổng quan về hệ điều hành Android ............................................................................ 13
2. Lập trình trên Android................................................................................................. 13
3. Ứng dụng Andoid trong việc thực hiện đồ án .............................................................. 14
3.1 Ứng dụng trong quá trình ghi âm ............................................................................... 14
3.2 Ứng dụng trong việc play âm thanh ........................................................................... 15
3.3 Ứng dụng trong quá trình hiển thị dữ liệu .................................................................. 16
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG ............................................... 17
I- Phân tích yêu cầu ứng dụng......................................................................................... 17
II- Thiết kế tổng quan ...................................................................................................... 18
III- Thiết kế chi tiết .......................................................................................................... 25
CHƯƠNG 3: KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH ............................................. 34
I- Thực hiện các chức năng của chương trình .................................................................. 34
II- Đánh giá kết quả thực hiện ........................................................................................ 41
TÀI LIỆU THAM KHẢO ............................................................................................... 42

5
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________



MỞ ĐẦU
Lý do chọn đề tài:
Công nghệ âm thanh ngày nay đã có sự phát triển vượt bậc, khơng những trong việc
lưu trữ từ dạng tương tự đến nay đã là dạng số mà còn trong việc xử lý, phân tích
thơng tin từ những dữ liệu âm thanh đó. Hiện nay, các cơng cụ giúp ghi âm, xử lý,
phân tích tín hiệu âm thanh đã có rất nhiều, đáp ứng được các nhu cầu về học tập,
nghiên cứu nhưng hầu hết đó là các ứng dụng trên nền tảng máy tính cá nhân PC.
Với sự phát triển mạnh mẽ của các thiết bị di động có khả năng ghi âm, khả năng xử
lý và chất lượng hiển thị tốt; chúng ta hồn tồn có thể xây dựng những chương
trình, phần mềm giúp việc ghi âm, xử lý, phân tích tín hiệu âm thanh được tiện lợi
hơn, phục vụ cho nhu cầu học tập và nghiên cứu. Do vậy, em đã lựa chọn đề tài xây
dựng ứng dụng soạn thảo âm thanh cơ bản trên nền tảng di động Android.

Mục tiêu của đồ án:
Xây dựng ứng dụng trên nền tảng di động Android với khả năng ghi âm, vẽ hiển thị
dữ liệu âm thanh, cắt âm thanh lưu lại file mới, vẽ hiển thị hàm tự tương quan của
tín hiệu âm thanh

Phạm vi của đồ án:
Trong phạm vi của đồ án, em sẽ nghiên cứu các vấn đề chính sau:
-

Tìm hiểu các khái niệm cơ bản của âm thanh số

-

Tìm hiểu về định dạng file âm thanh WAV


-

Tìm hiểu về việc phát triển một ứng dụng Android

-

Các hỗ trợ của Android đối với mục tiêu của đồ án

-

Phân tích và xây dựng chương trình

6
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


DANH MỤC CÁC HÌNH VẼ
STT

Tên hình

Nội dung

Trang

1

Hình 1.1

Ngun lý hoạt động của PCM


11

2

Hình 2.1

Biểu đồ phân cấp chức năng

17

3

Hình 2.2

Sơ đồ hoạt động chức năng ghi âm

18

4

Hình 2.3

Sơ đồ hoạt động chức năng xem danh sách file đã ghi âm

19

5

Hình 2.4


Sơ đồ hoạt động chức năng hiển thị dữ liệu file đã ghi âm

20

6

Hình 2.5

Sơ đồ hoạt động chức năng play file ghi âm

21

7

Hỉnh 2.6

Sơ đồ hoạt động chức năng cắt đoạn dữ liệu được chọn

22

8

Hình 2.7

Hoạt động chức năng hiển thị hàm tự tương quan

23

9


Hình 2.8

Thiết kế chuyển màn hình

24

10

Hình 3.1.1 Sơ đồ tuần tự chức năng ghi âm

25

11

Hình 3.1.2 Sơ đồ tuần tự chức năng xem danh sách file đã ghi âm

26

12

Hình 3.1.3 Sơ đồ tuần tự chức năng hiển thị dữ liệu file ghi âm

27

13

Hình 3.1.4 Sơ đồ tuần tự chức năng zoom hiển thị dữ liệu ghi âm

28


14

Hình 3.1.5 Sơ đồ tuần tự chức năng di duyển hiển thị dữ liệu ghi âm

29

15

Hình 3.1.6 Sơ đồ tuần tự chức năng chọn khoảng và play âm thanh

30

16

Hình 3.1.7 Sơ đồ tuần tự chức năng chọn khoảng và cắt âm thanh

31

17

Hình 3.1.8 Sơ đồ tuần tự chức năng vẽ hàm tự tương quan tín hiệu ghi âm

32

7
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


DANH MỤC CÁC BẢNG

STT
1

Tên bảng
Bảng 1.1

Nội dung
Cấu trúc của file định dạng âm thanh Wav

Trang
12

8
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


DANH MỤC CÁC THUẬT NGỮ, VIẾT TẮT
Từ viết tắt

Ý nghĩa

PCM

Pulse code modulation

WAV

Wavform Audio File Format

RIFF


Resource Interchange File Format

9
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT
I-

Tổng quan về âm thanh

1.

Âm thanh là gì ?

Âm thanh là sóng liên tục lan truyền trong khơng khí. Âm thanh cũng giống như
sóng nói chung, có các đặc tính cơ bản như: tần số, bước sóng, chu kỳ, biên độ và
vận tốc lan truyền. Âm thanh truyền đi trong khơng khí thuộc dạng sóng áp suất thể
hiện sự thay đổi áp suất khơng khí theo thời gian cũng như trong khơng gian.
Tần số của âm thanh xác định độ cao hay độ trầm bổng của âm thanh. Đối với tiếng
nói, tần số dao động của dây thanh sẽ quyết định độ trầm bổng của giọng nói. Biên
độ của sóng âm thanh xác định độ lớn của âm thanh phát ra to hay nhỏ.
2.

Số hóa âm thanh

Những ứng dụng của cơng nghệ âm thanh rất đa dạng, nhưng mục tiêu chính ban
đầu vẫn là làm sao để tái hiện âm thanh tại một thời điểm, địa điểm khác. Kỹ thuật
đầu tiên được sử dụng để ghi âm, truyền tải và xử lý âm thanh là kỹ thuật tương tự

(analog).
Người ta nhận thấy rằng, sóng điện từ có các cơ chế có thể biểu diễn tín hiệu tương
tự như âm thanh lan truyền trong khơng khí. Hiệu điện thế đầu vào ở microphone là
một dạng tương tự như là áp suất khơng khí. Những tín hiệu điện được lưu lại một
cách vật lý như băng từ,… Kỹ thuật tương tự có nhược điểm là dễ dẫn đến sai sót,
mất mát thơng tin trong q trình ghi âm, bảo quản, xử lý tín hiệu do phụ thuộc vào
loại thiết bị và cách thức lưu trữ.
Với sự ra đời của máy tính điện tử, chúng ta có một cách khác để lưu trữ lại thông
tin âm thanh, đó là lưu trữ dưới dạng số. Cách mơ tả thông tin âm thanh dưới dạng
số được sử dụng phổ biến là sử dụng hệ thống PCM (pulse code modulation). Q
trình số hóa được đặc trưng bởi việc lấy mẫu. Tín hiệu âm thanh được lấy mẫu ở
chiều thời gian và biên độ.
Lấy mẫu theo chiều thời gian được gọi đơn giản là lấy mẫu, đặc trưng cho quá trình
này là tần số lấy mẫu (sampling rate).
Lấy mẫu theo chiều biên độ hay điện thế được gọi là quá trình lượng tử hóa.
Hình ảnh bên dưới mơ tả hoạt động của hệ thống PCM.

10
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


Hình 1.1: Hoạt động của PCM

3.

Định dạng âm thanh số WAV

WAV là chuẩn lưu trữ âm thanh số được Microsoft và IBM sử dụng trên PC. WAV
là một dạng biến thể của RIFF – một phương thức lưu trữ dữ liệu số dưới dạng
“chunks”. WAV là định dạng chính được sử dụng trên nền tảng Window để lưu trữ

dữ liệu âm thanh thô, không nén.
Do ở dạng dữ liệu thô, nên kích thước của file âm thanh WAV thường lớn, tuy vậy
nó vẫn thường được sử dụng như là bản âm thanh gốc với chất lượng cao, từ đó mới
tiếp tục chuyển đổi thành các dạng nén tốn ít dung lượng hơn.
Cũng do đặc tính khơng nén của mình nên file Wav được ghi và đọc tương đối dễ
dàng, và thường được sử dụng trong việc phân tích tín hiệu âm thanh, tín hiệu tiếng
nói.
Một file WAV PCM có cấu trúc gồm 3 phần (chunk)
1. “RIFF”chunk: cho biết file có định dạng WAVE và sẽ có 2 Sub chunk tiếp theo.
2. “fmt ”chunk: mô tả định dạng mà âm thanh được lưu trữ ở data chunk tiếp theo.
3. “data”chunk: chứa thơng tin kích thước dữ liệu và tồn bộ dữ liệu âm thanh thô.
Cấu trúc chi tiết của một file âm thanh định dạng WAV PCM được mô tả ở bảng
bên dưới.

11
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


Byte

Type

Tên

Mô tả

0-3

big


ChunkID

Chuỗi 4 ký tự 'RIFF'

4-7

little

ChunkSize

36 + Subchunk2Size (data size)

8-11

big

Format

Chuỗi 4 ký tự 'WAVE'

12-15

big

Subchunk1ID

Chuỗi 4 ký tự 'fmt '

16-19


little

Subchunk1Size

16 đối với PCM, mơ tả kích thước Sub chunk 1

20-21

little

AudioFormat

PCM = 1

22-23

little

NumberChanels

1: mono, 2: stereo

24-27

little

SampleRate

8000, 16000, 44100, ...


28-31

little

ByteRate

Sample Rate * NumberChanels * BitsPerSample / 8

32-33

little

BlockAlign

NumberChanels * BitsPerSample / 8

34-35

little

BitsPerSample

8bits = 8; 16bits = 16; ...

36-39

big

Subchunk2ID


Chuỗi 4 ký tự "data"

40-43

little

Subchunk2Size

Number Sample * Number Chanels * BitPerSample
/8

44-

little

Data

Chứa dữ liệu âm thanh thực tế
Bảng 1.1: Định dạng file âm thanh Wav

Trong phần trình bày trên, em đã tóm tắt lại những khái niệm cơ bản về âm thanh,
âm thanh số cũng như về định dạng file âm thanh số WAV PCM. Trong phần tiếp
theo, em xin trình bày về hệ điều hành Android và những hỗ trợ của nền tảng này
trong việc thực hiện mục tiêu của đồ án.

12
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


II- Lập trình trên nền tảng Android

1. Tổng quan về hệ điều hành Android
Android là bộ công cụ phần mềm mã nguồn mở dựa trên nhân Linux 2.6 dành cho
nền tảng di động được phát triển bởi Google và Open Handset Alliance (tổ chức đa
quốc gia do Google lập, nhằm xây dựng một chiếc điện thoại tốt hơn dựa trên
Android). Hàng trăm triệu thiết bị Android trên toàn cầu hiện nay đã minh chứng
cho sự phát triển mạnh mẽ của nền tảng này.
Những đặc tính nổi trội của hệ điều hành Android so với các hệ điều hành di động
khác:
• Android thực sự mở, một nền tảng phát triển dựa trên Linux và mã nguồn mở:
Các nhà sản xuất thiết bị và các nhà phát triển yêu thích Android do họ có thể sử
dụng và tùy chỉnh nó mà khơng phải trả tiền bản quyền.
• Cung cấp các dịch vụ nền tảng phát triển ứng dụng.
• Hỗ trợ ngơn ngữ lập trình Java, C/C++.
• Dễ dạng xây dựng, chỉnh sửa, nâng cấp ứng dụng với bộ SDK đi kèm.
• Tối ưu hóa cho các thiết bị với nguồn năng lượng thấp và bộ nhớ hạn chế.
• Đồ họa và âm thanh chất lương cao.
• Tương thích với nhiều kiến trúc phần cứng khác nhau.
• Được hỗ trợ mạnh mẽ từ Google.
2. Lập trình trên Android
Trong Android, chỉ có một ứng dụng tiền cảnh (foreground application) chiếm
tồn bộ màn hình và chờ đợi để người dùng tương tác (ví dụ như ứng dụng Home
mỗi khi người dùng mở máy).
Khi người dùng chạy một ứng dụng, Android khởi động và đưa nó ra tiền cảnh. Từ
ứng dụng này, người dùng có thể đi đến ứng dụng khác, màn hình khác v.v. Tất cả
chương trình và màn hình được ghi vào application stack bởi Activity manager.
Người dùng có thể dùng nút Back để trở lại màn hình trước đó.
Một ứng dụng là một hoặc nhiều activity cộng thêm một tiến trình Linux chứa nó.
Các ứng dụng được quản lý chặt chẽ việc sử dụng tài nguyên nhằm tránh lãng phí,
xung đột, đảm bảo hiệu năng hệ thống.
Ứng dụng Android có phần mở rộng là Apk.

13
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


Thành phần chính được dùng trong ứng dụng Android
• Activities: một Activity thể hiện một màn hình giao diện người dùng
• Services: Thành phần chạy ngầm, khơng có giao diện, dùng để chạy các tác
vụ lâu dài.
• Content providers: quản lý dữ liệu chia sẻ, truy vẫn dữ liệu. Ví dụ việc lấy
dữ liệu trong danh bạ
• Broadcast receiver: thành phần thơng báo của hệ thống, đón bắt các sự kiện.

3. Ứng dụng Andoid trong việc thực hiện đồ án
3.1 Ứng dụng trong quá trình ghi âm
Android mutimedia framework hỗ trợ ghi âm với nhiều định dạng âm thanh khác
nhau. Cách thức thực hiện ghi âm phổ biến là sử dụng MediaRecorder APIs nhưng
API này lại không hỗ trợ định dạng âm thanh WAV PCM. Tuy vậy, Android vẫn
còn hỗ trợ ghi âm ở tầng thấp hơn sử dụng AudioRecord class. Lớp này quản lý các
tài nguyên âm thanh cho các ứng dụng Java để ghi âm từ phần cứng. Ứng dụng sẽ
tiến hành đọc dữ liệu liên tục từ đối tượng này và tiến hành xử lý phụ thuộc vào yêu
cầu cụ thể.
Hàm khởi tạo đối tượng:
public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int
audioFormat, int bufferSizeInBytes)
Trong đó:
-

audioSource: nguồn thu âm, nếu muốn thu âm từ mic ta dùng
MediaRecorder.AudioSource.MIC


-

sampleRateInHz: tần số lấy mẫu với đơn vị Hz

-

channelConfig: cấu hình kênh, dùng giá trị
AudioFormat.CHANEL_IN_MONO hoặc
AudioFormat.CHANEL_IN_STEREO

-

audioFormat: đinh dạng cho dữ liệu âm thanh, sử dụng giá trị
AudioFormat.ENCODING_PCM_16BIT hoặc
AudioFormat.ENCODING_PCM_8BIT

-

bufferSizeInBytes: tổng kích thước (đơn vị byte) của buffer khi dữ liệu âm
thanh được ghi trong quá trình ghi âm. Sử dụng hàm getMinBufferSize(int
14

Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


sampleRateInHz, int chanelConfig, int audioFormat) để xác định kích thước
buffer tối thiểu cần thiết.
3.2 Ứng dụng trong việc play âm thanh
Để play âm thanh, Andoird có hỗ trợ MediaPlayer class, lớp này có thể phát lại
âm thanh với nhiều định dạng khác nhau, trong đó có WAV PCM (andoid 4.1

trở lên). Ngồi ra, Android cịn hỗ trợ phát lại dữ liệu âm thanh PCM trực tiếp từ
buffer sử dụng AudioTrack class. Do vậy, để thuận tiện trong việc xử lý nguồn
âm thanh, em chọn sử dụng lớp AudioTrack để thực hiện việc play âm thanh đã
thu.
Hàm khởi tạo lớp:
public AudioTrack (int streamType, int sampleRateInHz, int channelConfig, int
audioFormat, int bufferSizeInBytes, int mode)
Trong đó:
-

streamType: loại stream, trong đồ án sử dụng:
AudioManager.STREAM_MUSIC

-

sampleRateInHz: tần số lấy mẫu của nguồn âm

-

channelConfig: cấu hình kênh: giá trị:
AudioFormat.CHANEL_OUT_MONO,
AudioFormat.CHANEL_OUT_STEREO

-

audioFormat: định dạng dữ liệu âm thanh:
AudioFormat.ENCODING_PCM_16BIT,
AudioFormat.ENCODING_PCM_8BIT

-


bufferSizeInBytes: kích thước buffer dữ liệu có thể ghi vào đối tượng
play, sử dụng hàm AudioTrack.getMinBufferSize() để xác định kích
thước buffer tối thiểu để có thể khởi tạo đối tượng ở MODE_STREAM

-

mode: xác định loại buffer : giá trị là AudioTrack.MODE_STREAM (cho
việc play dữ liệu lớn, liên tục) và AudioTrack.MODE_STATIC (cho việc
play dữ liệu nhỏ, cố định)

15
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


3.3 Ứng dụng trong quá trình hiển thị dữ liệu
Android sử dụng các đối tượng View để xây dựng nên giao diện người dùng.
Android cũng hỗ trợ nhà phát triển tự định nghĩa thêm các đối tượng View tùy
biến. Việc làm chủ yếu cần thiết để tạo dựng View class mới là override hàm
onDraw(Canvas canvas). Do vậy, trong quá trình xây dựng ứng dụng, em sẽ
định nghĩa thêm các View mới phục vụ việc hiển thị dữ liệu âm thanh.
Như vậy, em đã trình bày xong cơ sở lý thuyết để thực hiện đồ án. Trong chương
tiếp theo, em xin trình bày quá trình xây dựng ứng dụng của mình.

16
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG
I-


Phân tích yêu cầu ứng dụng

1.

Mục tiêu của ứng dụng

Ghi lại âm thanh và cung cấp công cụ chỉnh sửa ban đầu để phục vụ cho q trình
xử lý tín hiệu âm thanh, tiếng nói trên nền tảng di động Android
2.

Đặc tả chức năng

Các chức năng của chương trình:
-

Ghi âm với file định dạng âm thanh WAV PCM với sampleRate là 16000Hz
và sampleSize là 16bit, kênh mono

-

Hiển thị hình ảnh dữ liệu trong lúc đang ghi âm

-

Vẽ, hiển thị dữ liệu âm thanh đã thu được với khả năng zoom theo biên độ và
thời gian

-


Chọn được khoảng dữ liệu và play được theo khoảng dữ liệu đó

-

Cắt bỏ được khoảng dữ liệu được chọn và lưu lại file mới

-

Vẽ được hàm tự tương quan của dữ liệu đã thu âm

Hình 2.I.1: Biểu đồ phân cấp chức năng

17
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


II-

Thiết kế tổng quan

1. Sơ đồ hoạt động cơ bản
1.1 Chức năng ghi âm

Hình 2.2: Sơ đồ hoạt động chức năng ghi âm

Mô tả chung: khi người dùng chọn ghi âm, chương trình thực hiện ghi âm đồng thời
vẽ đồ thị dữ liệu đang ghi âm ra màn hình. Khi kết thúc ghi âm, chương trình sẽ
chuyển đến giao diện chỉnh sửa.

18

Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


1.2 Chức năng xem danh sách file đã ghi âm

Hình 2.3: Sơ đồ hoạt động chức năng xem danh sách file đã ghi âm

Mơ tả chung: người dùng có thể duyệt được các file đã ghi âm, xóa file, chọn
file để thực hiện xem và chỉnh sửa.

19
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


1.3 Chức năng hiển thị dữ liệu đã ghi âm

Hình 2.4: Sơ đồ hoạt động chức năng hiển thị dữ liệu đã ghi âm

Mơ tả chung: người dùng có thể xem dữ liệu đã ghi âm hiển thị trên đồ thị với
khả năng zoom theo biên độ, thời gian và di chuyển đồ thị khi zoom vượt quá
kích thước màn hình.

20
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


1. 4 Chức năng play dữ liệu âm thanh đã thu âm

Hình 2.5: Sơ đồ hoạt động chức năng play file đã ghi âm


Mơ tả chung: người dùng có thể chọn khoảng dữ liệu bằng tay trên đồ thị và
play đoạn đó. Nếu người dùng khơng chọn khoảng, mặc định chương trình sẽ
play tồn bộ file ghi âm.

21
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


1. 5 Chức năng cắt bỏ đoạn dữ liệu âm thanh đã thu âm

Hình 2.6: Sơ đồ hoạt động chức năng cắt bỏ đoạn thu âm

Mơ tả chung: chương trình hỗ trợ người dùng cắt đoạn âm thanh được chọn
nhằm mục đích xóa bỏ đoạn dư thừa trong q trình phân tích tín hiệu âm
thanh. Người dùng có thể lưu dữ liệu sau khi cắt thành file mới để dùng lại về
sau.

22
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


1.6 Chức năng vẽ hàm tự tương quan của dữ liệu đã thu âm

Hình 2.7: Sơ đồ hoạt động chức năng hiển thị hàm tự tương quan của tín hiệu ghi âm

Mơ tả chung: chương trình có chức năng vẽ hàm tự tương quan của tín hiệu đã
thu âm, hỗ trợ người dùng trong q trình phân tích tín hiệu âm thanh, tín hiệu
tiếng nói.

23

Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


2. Thiết kế các màn hình
2.1 Danh sách các màn hình
Các màn hình cần có trong chương trình
- Màn hình chính ứng dụng
- Màn hình chức năng ghi âm
- Màn hình danh sách các file đã ghi âm
- Màn hình chức năng xem và chỉnh sửa dữ liệu đã ghi âm
- Màn hình hiển thị hàm tự tương quan của tín hiệu âm thanh đã thu
2.2 Thiết kế chuyển màn hình

Hình 2.8: Thiết kế chuyển màn hình

24
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


III-

Thiết kế chi tiết

1. Sơ đồ tuần tự
1.1 Chức năng ghi âm

Hình 3.1.1: Sơ đồ tuần tự chức năng ghi âm

Mơ tả:
Để thực hiện chức năng ghi âm, chương trình cần có đối tượng hiển thị giao diện

chương trình chính MainActivity, đối tượng màn hình ghi âm, đối tương thực hiện
thao tác ghi âm WavRecorder (sử dụng đối tượng AudioRecord để ghi âm), đối
tượng View tùy biến Recording view để thực hiện vẽ dữ liệu đang ghi âm.
Sau khi ghi âm xong, đối tượng WavReader sẽ tiến hành đọc file đã ghi âm và thực
hiện chuyển sang màn hình hiển thị và chỉnh sửa dữ liệu.

25
Sinh viên thực hiện: _____ – ______ – Khóa ___ – Lớp _________


×