Mô tả giọng nói, lưu trữ trong chương trình 36 !

Một phần của tài liệu Xây dựng hệ thống biến đổi giọng nói trên nền tảng di động - Iphone (Trang 35)

Việc mô tả giọng nói, lưu trữ trong chương trình được sử dụng thông qua thư viện OpenAL (thư viện xử lý âm thanh, mã nguồn mở).

OpenAL (thư viện âm thanh mở) là một nền tảng API dành cho âm thanh [11]. OpenAL được thiết kế để tạo đa kênh âm thanh định vị hiệu quả. Cách đặt tên API trong OpenAL cố tình tương tự như OpenGL.

OpenAL được phát triển vào năm 2000 bởi Loki giúp họ trong kinh doanh trong việc chuyển các trò chơi từ Windows sang Linux. Sau sự sụp đổ của Loki, dự án đã được duy trì trong một thời gian bởi các cộng đồng phần mềm miễn phí, cộng đồng mã nguồn mở, và thực hiện trên card âm thanh và bo mạch chủ NVIDIA nForce.

Các chức năng chung của OpenAL được mã hóa trong các đối tượng nguồn, bộ đệm và lắng nghe âm thanh đầu vào. Một đối tượng nguồn có chứa một con trỏ đến một bộ đệm, tốc độ, vị trí, hướng và cường độ âm thanh. Các đối tượng người nghe có vận tốc, vị trí và hướng của người nghe, và được áp dụng chung cho tất cả âm thanh. Bộ đệm chứa dữ liệu âm thanh định dạng PCM, 8 hoặc 16-bit, trong cả hai định dạng mono hay

stereo. Bộ máy dựng hình thực hiện tất cả các tính toán cần thiết như sự suy giảm khoảng cách, hiệu ứng Doppler.

Kết quả của tất cả những điều này cho người dùng cuối là: trong một ứng dụng OpenAL, âm thanh hoạt động hoàn toàn tự nhiên khi người dùng di chuyển qua không gian ba chiều của thế giới ảo. Vì vậy, các lập trình viên tiết kiệm rất nhiều công sức trong việc lập trình các ứng dụng 3D.

Không giống như các đặc điểm kỹ thuật của OpenGL, các đặc điểm kỹ thuật OpenAL bao gồm hai phần phụ của các API chính bao gồm các lời gọi chức năng OpenAL thực tế, và các API ALC (thư viện Audio Context) được sử dụng để quản lý bối cảnh dựng hình, sử dụng tài nguyên và khóa đa nền tảng. Ngoài ra còn có một thư viện ALUT cung cấp chức năng thuận tiện "cấp cao hơn” tương tự như OpenGL.

Để cung cấp chức năng bổ sung trong tương lai, OpenAL sử dụng một cơ chế mở

rộng. Các nhà cung cấp cá nhân do đó có thể gắn phần mở rộng của riêng mình vào bản phân phối của OpenAL, thường với mục đích đưa ra các chức năng bổ sung vào phần cứng độc quyền của họ. Tiện ích mở rộng có thể thúc đẩy ARB, cho thấy một phần mở

rộng tiêu chuẩn sẽ được duy trì tính tương thích ngược. Mở rộng ARB cho phép những khách hàng tiềm năng bổ sung vào các API cốt lõi sau này.

Đối với xử lý tín hiệu kỹ thuật số tiên tiến và hiệu ứng âm thanh được tăng tốc trong phần cứng, EFX (hiệu ứng mở rộng) hoặc âm thanh môi trường mở rộng (EAX) có thể được sử dụng.

Hình 4.1: Thư viện OpenAL trên iPhone [8]

Một phần của tài liệu Xây dựng hệ thống biến đổi giọng nói trên nền tảng di động - Iphone (Trang 35)