intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Thiết kế ứng dụng và xây dựng thuật toán biến đổi âm thanh trên nền tảng iOS

Chia sẻ: Phó Cửu Vân | Ngày: | Loại File: PDF | Số trang:6

9
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết "Thiết kế ứng dụng và xây dựng thuật toán biến đổi âm thanh trên nền tảng iOS" tập trung xây dựng thuật toán, lập trình để biến đổi âm thanh gốc thành nhiều loại âm thanh có đặc điểm khác nhau. Bên cạnh đó, thiết kế một ứng dụng (app) áp dụng ngay kết quả biến đổi âm thanh của nghiên cứu này cho người dùng. Tín hiệu âm thanh sau khi biến đổi có thể nghe, kiểm thử từ chính app xây dựng lên. Bên cạnh đó, có thể quan sát và so sánh dạng sóng của tín hiệu gốc và tín hiệu âm thanh sau khi biến đổi. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Thiết kế ứng dụng và xây dựng thuật toán biến đổi âm thanh trên nền tảng iOS

  1. Hội nghị Quốc gia lần thứ 26 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2023) Thiết Kế Ứng Dụng Và Xây Dựng Thuật Toán Biến Đổi Âm Thanh Trên Nền Tảng IOS Nguyễn Văn Thắng1, Trần Đức Duy2 1 Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, 2Khoa Công nghệ thông tin, Trường Đại học Thủy lợi. Email: 1nvthangdtvt@vnu.edu.vn, 2tranduy10062k@gmail.com. Abstract— Nghiên cứu tập trung xây dựng thuật toán, [4]. Nghiên cứu [5] đều xử lý âm thanh bằng mô hình lập trình để biến đổi âm thanh gốc thành nhiều loại âm học sâu: mạng nơ-ron đồ thị, mạng nơ-ron đồ thị động thanh có đặc điểm khác nhau. Bên cạnh đó, thiết kế một và mạng nơ-ron điểm. Những mô hình này dựa trên các ứng dụng (app) áp dụng ngay kết quả biến đổi âm thanh đặc trưng từ đám mây điểm. của nghiên cứu này cho người dùng. Tín hiệu âm thanh sau khi biến đổi có thể nghe, kiểm thử từ chính app xây Trong nghiên cứu này, chúng tôi tập trung khai thác dựng lên. Bên cạnh đó, có thể quan sát và so sánh dạng những công cụ, ngôn ngữ lập trình mã nguồn mở và tận sóng của tín hiệu gốc và tín hiệu âm thanh sau khi biến dụng nền tảng có sẵn trên hệ điều hành iOS để xây đổi. dựng và đề xuất thuật toán biến đổi âm thanh ở đầu vào thành dạng âm thanh theo ý muốn ở đầu ra. Ngoài ra, Keywords- Voice change, xử lý âm thanh, biến đổi âm nhóm nghiêm cứu cũng thiết kế và xây dựng một ứng thanh trên iOS. dụng (app) mang tên “Voice change”. Cấu trúc của bài báo này như sau: Sau phần giới I. GIỚI THIỆU thiệu, Phần II trình bày quá trình xây dựng thuật toán, Xử lý âm thanh là kỹ thuật hết sức quan trọng trong thiết kế ứng dụng. Kết quả đạt được được mô tả trong các thiết bị, hệ thống thông tin, đặc biệt là trong các hệ Phần III và Kết luận được đưa ra trong Phần IV. thống số hiện nay. Đã rất nhiều nghiên cứu được thực II. THIẾT KẾ, XÂY DỰNG THUẬT TOÁN VÀ hiện và ứng dụng thành công. Nghiên cứu [1] đề xuất ỨNG DỤNG phương pháp xử lý âm thanh số trên nền tảng Ardruino, bộ biến đổi ADC 12 bít và MATLAB với một số ví dụ Mục tiêu của nghiên cứu là thiết kế được một ứng dụng để có kết quả phân tích âm thanh tốt hơn từ những hạn và xây dựng thuật toán biến đổi âm thanh trên hệ điều chế của Arduino đã chọn. Đồng thời, cũng chỉ ra rằng hành iOS. Quá trình thực hiện sử dụng ngôn ngữ lập việc sử dụng Arduino Due cho tốc độ xử lý nhanh gấp trình Swift, bộ phát triển phần mềm tích hợp Xcode, bộ 15 lần so với dùng Arduino Uno. xử lý âm thanh AVAudioEngine, mô hình lập trình Hầu hết quy trình xử lý âm thanh đều liên quan đến MVVM [8] và một số công cụ, kiến thức khác. việc biến đổi biểu diễn đầu vào có kích thước cố định Hình 1 trình bày sơ đồ khối và lưu đồ của ứng dụng của âm thanh. Ví dụ, khi sử dụng biến đổi Fourier thời “Voice change”. Biểu đồ phân rã chức năng được thiết gian ngắn (STFT) thì kích thước biến đổi Fourier rời kế và mô tả trong Hình 2. rạc (DTF) là cố định với biểu diễn đầu vào. Từ đó, Trong thiết kế này, âm thanh mang đi thực hiện biến nhiều mô hình học máy âm thanh được thiết kế để xử đổi, gọi là tệp âm thanh gốc, có thể lấy từ tệp tin có lý các đầu vào dạng vector kích thước cố định. Trong sẵn, hoặc được ghi âm trực tiếp. Với các tệp tin có sẵn, thực tế, thông tin phổ bên trong của tín hiệu âm thanh có thể thực hiện việc đổi tên tệp, xóa tệp, chia sẻ tệp tin là bất biến với sự lựa chọn cách biểu diễn đầu vào hoặc và hiển thị một số thông tin khác như dung lượng, kiểu theo tốc độ lấy mẫu. Trích dẫn [2] tập trung xử lý tín tệp tin, ngày giờ… Khi thực hiện biến đổi âm thanh hiệu đầu vào đó bằng cách thu thập các điểm trên (được thực hiện trong khối “Bộ biến đổi âm thanh”), không gian đặc trưng và dùng các mô hình học máy người dùng sẽ lựa chọn một kiểu âm thanh có đặc điểm đám mây điểm (the point cloud) để tìm ra những bất cụ thể được xây dựng sẵn thông qua thuật toán đề xuất biến theo sự lựa chọn tham số biểu diễn như kích thước trong nghiên cứu này. Thuật toán này cũng cho phép DTF hoặc tần số lấy mẫu. Ngoài ra, phương pháp này thay đổi tham số để đạt được mục tiêu mong muốn. cũng chứng minh được là có thể sử dụng mô hình nhỏ Biểu đồ Hình 2 chỉ ra 2 chức năng chính của ứng dụng: hơn mà vẫn đạt được chất lượng tương đương. Tương tác với người dùng và quản lý dữ liệu. Chức Trong [3] xây dựng mô hình học sâu sử dụng các năng chính thứ nhất cho phép người dùng có thể: Ghi tập hợp điểm để phân đoạn và phân loại 3 chiều. Cũng âm, mở tệp tin, biến đổi tệp tin có sẵn hoặc tệp tin ghi là mô hình học sâu phân tầng nhưng sử dụng các tập âm. Chức năng chính thứ 2 cho phép quản lý quá trình hợp điểm trong không gian metric được trình bày trong ghi âm, quản lý tệp ghi âm hoặc tệp tin có sẵn, đồng ISBN ............ 978-604-80-8932-0 317
  2. Hội nghị Quốc gia lần thứ 26 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2023) thời, quản lý quá trình biến đổi tệp tin và quản lý tệp muốn thì quay lại chọn dạng biến đổi khác và thực hiện tin sau khi lưu. lại thao tác trên. Nếu tệp tin vẫn chưa theo ý muốn thì phải sửa đổi tham số trong thuật toán và thực hiện lại quá trình này. Hình 1. Sơ đồ khối và lưu đồ của ứng dụng Hình 3. Biểu đồ hoạt động của ứng dụng Hình 2. Biểu đồ phân rã chức năng Hình 4. Biểu đồ hoạt động biến đổi tệp âm thanh Hình 3 mô tả quy trình biến đổi âm thanh từ tệp âm thanh có sẵn hoặc âm thanh ghi âm trực tiếp. Biểu đồ Trong thiết kế và xây dựng ứng dụng “Voice change”, thực hiện biến đổi âm thanh đối với tệp tin có sẵn được ngoài những biểu đồ trên còn có: mô tả chi tiết hơn trong Hình 4. Trong biểu đồ này sau ✓ Biểu đồ hoạt động chức năng lưu âm thanh. khi lựa chọn nút biến đổi (nút được thiết kế trên ứng ✓ Biểu đồ hoạt động đổi tên tệp âm thanh. dụng đã có đặc điểm riêng của âm thanh), tệp tin sẽ ✓ Biểu đồ xóa tệp âm thanh. được biến đổi rồi mở cho người dùng nghe thử. Nếu Trong bài báo này, nhóm nghiên cứu thực hiện 19 biến kết quả đạt được như mong muốn sẽ thực hiện lưu tệp đổi âm thanh khác nhau từ âm thanh gốc. Mỗi biến đổi tin. Trường hợp, âm thanh chưa đạt kết quả mong ISBN ............ 978-604-80-8932-0 318
  3. Hội nghị Quốc gia lần thứ 26 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2023) sẽ có tham số, đặc trưng riêng. Mỗi biến đổi này sẽ được gắn với một biểu tượng riêng (trong Hình 4 gọi là nút biến đổi) trong thiết kế ứng dụng ở trên để người dùng có thể lựa chọn. Lưu đồ thuật toán biến đổi âm thanh đề xuất được trình bày trong Hình 5. Trong lưu đồ này, dữ liệu đọc vào có thể là tệp tin có sẵn hoặc từ ghi âm. Định dạng âm thanh (đuôi file âm thanh: .MP3, .WMA, .WAV, …) cũng được cấu hình, thiết lập trong khối này. Nếu âm thanh không biến đổi sẽ được lưu lại ngay. Trường hợp, muốn biến đổi âm thanh, khối “Thiết lập tham số, biến đổi” sẽ hoạt động. Mỗi hiệu ứng âm thanh sẽ được tạo ra bằng cách kết hợp các tham số trình bày trong Bảng 1. Khối “Thiết lập tham số, biến đổi” cho chạy các vòng lặp để tìm ra các tham số phù hợp. Xuất phát điểm của các vòng lặp thường chọn là các giá trị mặc định. Tuy nhiên, để đơn giản khi mô tả thuật toán này, các tham số sau khi được tìm ra sẽ cho vào các đoạn code mô tả bên để cho ra hiệu ứng âm thanh mong muốn. Bảng 1: Tham số tạo hiệu ứng âm thanh Pitch (độ cao thấp) Giá trị: -2400  2400 Mặc định: 0.0 Rate (tốc độ) AVAudioUnitTimePitch Giá trị: 1/32  32.0 (Độ cao thấp, tốc độ) Mặc định: 1.0 Overlap (chồng chéo) Giá trị: 3.0  32.0 Mặc định: 8.0 Hình 5. Lưu đồ thuật toán biến đổi âm thanh đề xuất loadFactoryPreset AVAudioUnitDistortion Mặc định: speedWaves ➢ Biến đổi độ trầm bổng của âm thanh: (Hiệu ứng biến dạng wetDryMix nhiều tầng) Giá trị: 0%  100% • DarthVaderEffect: Mặc định: 0% loadFactoryPreset class DarthVaderEffect: Effect { Giá trị: Tùy Case study private(set) var name = AVAudioUnitReverb (Độ vang) wetDryMix EffectFactory.ChangeVoice.vader1 Giá trị: 0%  100% private(set) var rate = 1.0 Mặc định: 0% private(set) lazy var audioUnits: [AVAudioUnit] = { let timePitchAU = AVAudioUnitTimePitch() ➢ Biến đổi độ cao của âm thanh: timePitchAU.pitch = -1200 • BeeEffect: return [timePitchAU] }() class BeeEffect: Effect{ } private(set) var name = EffectFactory.ChangeVoice.bee private(set) var rate = 2.0 ➢ Biến đổi độ nhiễu và âm trầm của âm thanh: private(set) lazy var audioUnits: [AVAudioUnit] = { • AlienEffect: let timePitchAU = AVAudioUnitTimePitch() timePitchAU.pitch = 2000 private(set) var name = EffectFactory.ChangeVoice.alien timePitchAU.rate = 1.5 private(set) var rate = 1.0 return [timePitchAU] private(set) lazy var audioUnits: [AVAudioUnit] = { }() let timePitchAU = AVAudioUnitTimePitch() } ISBN 978-604-80-8932-0 319
  4. Hội nghị Quốc gia lần thứ 26 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2023) timePitchAU.pitch = 100 let distortionAU = AVAudioUnitDistortion() distortionAU.loadFactoryPreset(.speechCosmicInter ference) distortionAU.wetDryMix = 100 return [timePitchAU, distortionAU] }() } (b) Hình 6. So sánh độ cao của tệp tin gốc (a) và tệp tin sau biến ➢ Biến đổi nhịp điệu và độ bổng: đổi (b) • FanEffect: class FanEffect: Effect { private(set) var name = EffectFactory.ChangeVoice.fan private(set) var rate = 1.0 private(set) lazy var audioUnits: [AVAudioUnit] = { let distortionAU = AVAudioUnitDistortion() (a) distortionAU.loadFactoryPreset(.speechWaves) distortionAU.wetDryMix = 10 let timePitchAU = AVAudioUnitTimePitch() timePitchAU.pitch = 100 return [distortionAU, timePitchAU] }() } (b) Hình 7. So sánh độ trầm bổng của tệp tin gốc (a) với tệp tin sau khi biến đổi (b). III. KẾT QUẢ ĐẠT ĐƯỢC Kết quả thu được từ việc lập trình và biến đổi tham số âm thanh tương ứng được kiểm chứng bằng việc nghe tệp âm thanh được mở ra sau mỗi lần biến đổi. Bên cạnh đó, có thể quan sát và so sánh dạng sóng của tín hiệu gốc với tín hiệu âm thanh sau khi biến đổi trên miền thời gian. Để làm được việc đó cần sử dụng thư viện ngoài DSWaveformImage [9] với kết quả thu được được chỉ ra trong các hình dưới đây. (a) Hình 6 so sánh độ cao (BeeEffect) của tệp tin gốc và tệp tin sau khi biến đổi. Tham số trong DarthVaderEffect sẽ làm thay đổi độ trầm bổng của tín hiệu âm thanh (Hình 7). Kết hợp biến đổi độ nhiễu và âm trầm dựa vào tham số trong AlientEffect (Hình 8). (b) Hình 8. So sánh độ nhiễu và âm trầm của tệp tin gốc (a) với tệp tin sau khi biến đổi (b). Kết quả của tín hiệu âm thanh biến đổi nhịp điệu và độ (a) bổng (FanEffect) được chỉ ra trong Hình 9. So sánh tệp gốc và tệp sau khi biến đổi độ nhiễu được thể hiện trong Hình 10. ISBN ............ 978-604-80-8932-0 320
  5. Hội nghị Quốc gia lần thứ 26 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2023) lại sẽ xuất hiện màn hình chính của app (Hình 11b). Màn hình chính cũng dùng để lưu tệp tin âm thanh. (a) (b) Hình 9. So sánh nhịp điệu và độ bổng của tệp tin gốc (a) với tệp tin sau khi biến đổi (b). (a) (b) Hình 11. Màn hình khởi động (a) và màn hình chính của app (b). Màn hình mở hoặc tạo tệp tin thông qua ghi âm: Để có tệp tin biến đổi âm thanh theo mong muốn, người dùng có thể sử dụng tệp âm thanh có sẵn hoặc tệp âm thanh từ việc ghi âm (Hình 12a). Trường hợp, muốn ghi âm và biến đổi thì app sẽ yêu cầu được truy cập vào microphone của thiết bị trước (Hình 12b). Sau khi ghi âm, tệp gốc và tệp tin âm thanh biến đổi sẽ được lưu vào thiết bị (Hình 13). (a) (b) Hình 10. So sánh độ nhiễu của tệp tin gốc (a) với tệp tin sau khi biến đổi (b). Như đã đề cập ở trên, trong nghiên cứu này ngoài lập trình biến đổi âm thanh còn xây dựng app để kiểm chứng, đánh giá kết quả và sử dụng như các ứng dụng khác trên các thiết bị di động dùng hệ điều hành iOS. Công cụ hỗ trợ thiết kế và xây dựng giao diện là Figma [10]. Đây là loại giao diện dành cho người dùng, sử dụng các biểu tượng để app sinh động, bắt mắt và dễ thao tác. Sau khi thiết kế, app có: Màn hình khởi động và màn hình chính: (a) (b) Người dùng khi mới tải app sẽ có màn hình chào đón như Hình 11a. Khi nhấn Get Started và thoát app vào Hình 12. Màn hình mở/ghi âm tệp tin (a) và màn hình yêu cầu truy cập microphone để ghi âm (b). ISBN ............ 978-604-80-8932-0 321
  6. Hội nghị Quốc gia lần thứ 26 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2023) Sau khi lưu tệp tin âm thanh thành công, app cho phép thực hiện một số thao tác với tệp như: Đổi tên tệp, chia sẻ tệp, xóa tệp. Việc chia sẻ tệp sử dụng công cụ chia sẻ sẵn có của Apple và hệ thống sẽ lấy file dưới dạng url để chia sẻ [Hình 15]. IV. KẾT LUẬN Dựa trên ngôn ngữ lập trình Swift, bộ phát triển phần mềm tích hợp Xcode, bộ xử lý âm thanh AVAudioEngine, mô hình lập trình MVVM [11] và một số công cụ khác, nhóm nghiên cứu đã thiết kế và xây dựng thành công một app trên thiết bị di động sử dụng hệ điều hành iOS mà không cần đăng nhập qua email hay bất kỳ hình thức nào. Đóng góp chính của nghiên cứu gồm: Thiết kế được app riêng phù hợp và dễ sử dụng; xây dựng được thuật toán, lập trình cho Hình 13. Màn hình thực hiện ghi âm (trái) và tạo tệp tin phép biến đổi tín hiệu âm thanh gốc thành 19 tín hiệu (phải). âm thanh có đặc trưng khác nhau. Những đóng góp này cho phép ứng dụng vào nhiều lĩnh vực khác nhau, Màn hình biến đổi âm thanh: trong đó có lĩnh vực giải trí, thuyết minh và lồng tiếng Mỗi biểu tượng trong màn hình biến đổi âm thanh trong phim ảnh, hội thoại nhằm tăng tính đa dạng của (Hình 14) đều gắn với một tham số biến đổi đã được giọng nói, giảm chi phí nhân công. lập trình sẵn. TÀI LIỆU THAM KHẢO [1] Sergio Silva, Salviano Soares, Antonio Valente, “Digital sound processing using ardruino and matlab”, Science and Information Conference, London, UK, pp. 1184-1191, 2015. [2] Krishna Subramani, Paris Smaragdis, “Point cloud audio processing”, 2021 IEEE Workshop on Applications of Signal Processing to Audio and Acoustic, New Paltz, NY, 2021. [3] C. R. Qi, H. Su, K. Mo, and L. J. Guibas, “Pointnet: Deep learning on point sets for 3d classification and segmentation. corr abs/1612.00593 (2016),” arXiv preprint arXiv:1612.00593, 2016. [4] C. R. Qi, L. Yi, H. Su, and L. J. Guibas, “Pointnet++: Deep hierarchical feature learning on point sets in a metric space,” arXiv preprint arXiv:1706.02413, 2017. [5] Y. Wang, Y. Sun, Z. Liu, S. E. Sarma, M. M. Bronstein, and J. M. Solomon, “Dynamic graph CNN for learning on point clouds.(2018),” arXiv preprint arXiv:1801.07829, 2018. [6] Y. Zhang and M. Rabbat, “A graph-cnn for 3d point cloud classification,” in 2018 IEEE International Conference on Hình 14. Màn hình biến đổi âm thanh Acoustics, Speech and Signal Processing (ICASSP). IEEE, pp. 6279–6283, 2018. [7] Y. Li, R. Bu, M. Sun, W. Wu, X. Di, and B. Chen, “Pointcnn: Convolution on X -transformed points,” arXiv preprint arXiv:1801.07791, 2018. [8] https//www.geeksforgeeks.org/mvvm-model-view-viewmodel- architecture-pattern-in-android. [9] https://github.com/dmrschmidt/DSWaveformImage. [10] https://www.figma.com. Hình 15. Màn hình thông báo đặt tên (trái) và lưu tên file thành công (phải) ISBN ............ 978-604-80-8932-0 322
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2