You are on page 1of 65

ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)

TRONG THỜI GIAN THỰC


CHƯƠNG 1
GIỚI THIỆU
1.1 Mục tiêu của dự án
Để cho người dùng nghe bất kỳ văn bản nào thành chuyển đổi giọng nói, điều này
sẽ đượchệ thống đọc mọi văn bản đã viết ở chế đô ̣ đọc. Tệp văn bản sẽ được
chuyển đổi thành phát biểu. Đối với điều này, chúng tôi đang sử dụng một kit
RASPBERRY PI được lâ ̣p trình nhúng có khả năng chuyển hệ điều hành. Một
thuật toán tổng hợp giọng nói open source là được triển khai trong Bộ xử lý
RASPBERRY PI để chuyển đổi văn bản thành giọng nói. Thuật toán này sẽ không
chỉ giúp những người khiếm thị thưởng thức các tệp âm thanh mà còn giúp những
người khiếm thị nghe hầu như tất cả thông tin của họ đều thu được từ lời nói. Vì
vậy, bằng cách sử dụng dự án này, trực quan người khiếm thị có thể có lợi thế hơn
khi nghe bài phát biểu. Ngoài điều này, chúng tôi có thể sử dụng trong nhà ga,
công ty, bến xe buýt, trung tâm mua sắm, vv .. vì vậy bất cứ điều gì chúng tôi nhập
vào tệp Văn bản nó sẽ được chuyển đổi dưới dạng lời nói Mục tiêu của dự án bao
gồm
1. Chuyển đổi tệp Văn bản đã cho thành chuyển đổi giọng nói
1.2 ĐỘNG LỰC
Ngày nay, nghe sách nói trên thiết bị di động là khá phổ biến. Do đó, trong tương
lai, chúng tôi sẽ thu được lượng thông tin ngày càng tăng qua lời nói thay vì vật
liệu in thông thường. Vì vậy, thay vì Đọc sách, chúng ta có thể nghe bài phát biểu
bằng tai nghe hoặc hình thức của loa và bất cứ điều gì Người dùng sẽ viết nó sẽ
được đọc dưới dạng bài phát biểu. Trong dự án này, chúng tôi đã sử dụng Bài phát
biểu mã nguồn mở Thuật toán tổng hợp để chuyển đổi các tập tin từ Văn bản sang
giọng nói Vì vậy, mọi người đọc sách tại nhiều mức độ chi tiết khác nhau từ đọc
gần đến đọc lướt. Bằng cách sử dụng khái niệm này, bao giờ chúng ta được nhập
vào tệp Văn bản sẽ được chuyển đổi dưới dạng Bài phát biểu dưới dạngmáy tính
tạo ra giọng nói. Điều này mở ra rất nhiều cơ hội trong tương lai của chính họ
giọng nói được tạo ra.
1
ECET
Trang 2
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
1.3 TỔ CHỨC HỒ SƠ
CHƯƠNG 1: Chương này trình bày tổng quan ngắn gọn về dự án, mục tiêu của dự
án và
cuối cùng là tổ chức luận văn.
CHƯƠNG 2: Mô tả tóm tắt về 'khảo sát tài liệu' của luận án.
CHƯƠNG 3: Nó giải thích sơ đồ khối và mô tả chức năng của nó và chức năng
của
mỗi khối.
CHƯƠNG 4: Tập trung vào mô tả phần cứng của Bộ xử lý ARM 11, như các tính
năng,, Địa chỉ
Phân bổ không gian,. arm 11 Kết nối nguồn điện, Cấu hình GPIO, RASPBERRY
PI
Bo mạch, S3C2440A - Bộ vi xử lý RISC 32-BIT
CHƯƠNG 5: Mô tả về Chuyển đổi văn bản thành giọng nói.
CHƯƠNG 6: Mô tả về ADC.
CHƯƠNG 7: Mô tả về các Mô-đun Phần cứng khác như Loa, Bộ nguồn.
CHƯƠNG 8: Giải thích chi tiết về Lưu đồ và Sơ đồ của các lựa chọn khác nhau
của
dự án.
CHƯƠNG 9: Mô tả phần mềm và Mã nguồn của Dự án.
CHƯƠNG 10: Nó mô tả những Ưu điểm và Ứng dụng của Dự án.
CHƯƠNG 11: Ảnh chụp nhanh của dự án.
CHƯƠNG 12: Danh sách thành phần phần cứng của dự án
CHƯƠNG 13: Kết luận và Phạm vi tương lai của dự án.
CHƯƠNG 14: Thư mục của dự án.
.
2
ECET

Trang 3
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 2
KHẢO SÁT VĂN HỌC
2.1 Giới thiệu
Để thiết kế một thiết bị nhúng Chuyển văn bản thành giọng nói với chi phí
thấp. Chúng tôi mô tả một
Công nghệ kiểm soát tốc độ giọng nói để nghe cực nhanh tương đương với đọc
lướt.
Ngày nay, nghe sách nói trên thiết bị di động là khá phổ biến. Do đó, trong
trong tương lai, chúng tôi sẽ thu được lượng thông tin ngày càng tăng qua lời nói
thay vì
vật liệu in thông thường. Mọi người đọc sách ở nhiều cấp độ chi tiết khác nhau từ
gần
đọc để đọc lướt. Mặc dù cần có một tính năng tương tự như đọc lướt để có được
hiệu quả
thông tin từ các nguồn âm thanh, không có công cụ nào tương đương với đọc lướt
để phát lại âm thanh.
2.2 Hệ thống hiện có
Họ không cho thấy bất kỳ triển khai phần cứng nào chỉ là quy trình lý thuyết
đã được giải thích là không đủ để tiếp xúc thực tế và cũng đã được
được sử dụng rất phức tạp và không thể hiển thị nâng cao hơn nữa. Hệ thống
Informedia được sử dụng trong
khái niệm dự án hiện tại này dường như không hiệu quả trong trường hợp đọc lướt
bài phát biểu
nội dung của một cuốn sách nói. Do đó, phương pháp này không phù hợp để đạt
được mục đích
nghe giọng nói nhanh nhất và chính xác nhất có thể.
2.3 Hệ thống đề xuất
Trong hệ thống được đề xuất, chúng tôi đã cung cấp triển khai thực tế bằng cách sử
dụng
thiết bị nhúng với bộ xử lý kiến trúc ARM và với sự trợ giúp của nguồn mở
Tổng hợp giọng nói
Thuật toán đã phát triển một phiên bản nâng cao của chuyển văn bản thành giọng
nói, cung cấp cho người dùng
nghe các từ chính xác được đưa ra trong một tệp văn bản.
Tệp văn bản sẽ được cung cấp cho Phân tích văn bản, nó tải độ dài của Văn bản
và nó tạo ra Utterance Composed of Words và Nhóm từ này sẽ là
cho Phasing và Phasing được sử dụng để phân chia Nhóm từ khỏi tệp Văn bản và
Ngữ điệu được sử dụng để quét từng ký tự từ Phasing và Khoảng thời gian là
3
ECET

Trang 4
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
được sử dụng để đếm thời lượng của các ký tự từ Ngữ điệu và Phân tích ngôn ngữ

để thay đổi Ngôn ngữ theo kiểu dệt và nó tạo ra Utterance bao gồm
Âm vị và bằng cách sử dụng khối Bộ tạo dạng sóng Giọng nói tổng hợp được tạo
sẵn trong Flite Speech
Tổng hợp sẽ đọc các Âm vị đầu ra thông qua cổng Âm thanh.
Sử dụng Qutopia GUI, giao diện thiết kế để tải tệp bằng cách sử dụng nút chọn và
bằng cách nhấp vào nút phát, Văn bản sẽ được tải vào Tổng hợp giọng nói nguồn
mở
Thuật toán và Lời nói sẽ được tạo dưới dạng đầu ra.
4
ECET

Trang 5
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 3
SƠ ĐỒ VÀ MÔ TẢ KHỐI
HÌNH 3.1 SƠ ĐỒ KHỐI CỦA RASPBERRY PI
3.2 Mô tả sơ đồ khối
Trong dự án này, chúng tôi đã cung cấp triển khai thực tế bằng cách sử dụng thiết
bị nhúng với
Bộ xử lý kiến trúc ARM và với sự trợ giúp của tổng hợp giọng nói nguồn mở
Thuật toán đã phát triển một phiên bản nâng cao của chuyển văn bản thành giọng
nói, cung cấp cho người dùng
nghe các từ chính xác được đưa ra trong một tệp văn bản. Sử dụng Qutopia GUI,
giao diện thiết kế để tải
tập tin.
5
ECET
ADC

Trang 6
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
• ADC được kết nối với Cổng HDMI đến kết nối LCD.
• Loa được tích hợp sẵn trong Bảng RASPBERRY PI.
• Đối với giao diện Người dùng, chúng tôi đang sử dụng Chuột và Bàn phím được
kết nối với RASPBERRY PI
Bảng.
3.2.2 BỘ ĐIỀU KHIỂN MICRO
Trong dự án này, bộ điều khiển vi mô đóng vai trò chính. Bộ điều khiển vi mô đã
ban đầu được sử dụng như các thành phần trong các hệ thống điều khiển quá trình
phức tạp. Tuy nhiên, vì
kích thước nhỏ và giá thấp của chúng, Bộ điều khiển vi mô hiện cũng đang được
sử dụng trong các bộ điều chỉnh
các vòng điều khiển riêng lẻ. Trong một số lĩnh vực, Bộ điều khiển vi mô hiện
đang hoạt động tốt hơn
các bộ phận truy cập tương tự và rẻ hơn.
3.2.3 CUNG CẤP ĐIỆN
Đầu vào cho mạch được áp dụng từ nguồn điện được điều chỉnh. Các
đầu vào xoay chiều tức là, 230V từ nguồn cung cấp chính là bước xuống bởi
biến áp thành 12V và được đưa đến bộ chỉnh lưu. Sản lượng thu được từ
chỉnh lưu là một điện áp một chiều xung. Vì vậy, để có được điện áp một chiều
thuần túy,
điện áp đầu ra từ bộ chỉnh lưu được đưa đến bộ lọc để loại bỏ bất kỳ dòng điện
xoay chiều nào
các thành phần hiện diện ngay cả sau khi chỉnh lưu. Bây giờ, điện áp này được cấp
cho
một bộ điều chỉnh điện áp để thu được điện áp thuần một chiều không đổi.
3.2.4 ANALOG- - BỘ CHUYỂN ĐỔI ĐẾN SỐ (ADC)
Bộ chuyển đổi tương tự sang kỹ thuật số (ADC, A / D hoặc A sang D) là một thiết
bị chuyển đổi liên tục
đại lượng vật lý (thường là điện áp) thành một số kỹ thuật số đại diện cho đại
lượng
biên độ.
Việc chuyển đổi liên quan đến lượng tử hóa đầu vào, vì vậy nó nhất thiết phải giới
thiệu một lượng nhỏ
của lỗi. Thay vì thực hiện một chuyển đổi đơn lẻ, một ADC thường thực hiện các
chuyển đổi
6
ECET

Trang 7
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
("lấy mẫu" đầu vào) theo định kỳ. Kết quả là một chuỗi các giá trị kỹ thuật số đã
được
được chuyển đổi từ tín hiệu tương tự biên độ liên tục và thời gian liên tục sang thời
gian rời rạc
và tín hiệu kỹ thuật số biên độ rời rạc.
3.2.5 LOA
Loa của hệ thống là thành phần nhận tín hiệu điện tử được lưu trữ trên những thứ
như
băng đĩa, băng vàDVD và biến nó trở lại thành âm thanh thực tế mà chúng ta có
thể nghe thấy.
3.2.6 Màn hình TFT LCD
Bộ điều khiển LCD có DMA chuyên dụng hỗ trợ lấy dữ liệu hình ảnh từ bộ đệm
video
nằm trong bộ nhớ hệ thống. Các tính năng của nó cũng bao gồm:
• Các chức năng ngắt chuyên dụng (INT_FrSyn và INT_FiCnt)

Bộ nhớ hệ thống được sử dụng làm bộ nhớ hiển thị.

Hỗ trợ nhiều màn hình hiển thị ảo (Hỗ trợ cuộn ngang / dọc phần cứng)

Điều khiển thời gian có thể lập trình cho các bảng hiển thị khác nhau

Hỗ trợ sắp xếp byte nhỏ và lớn, cũng như các định dạng dữ liệu WinCE
• Hỗ trợ bảng điều khiển LCD TFT 2 loại SEC (SAMSUNG 3.5 ”Chân dung /
256K Màu / Phản chiếu
và Transflective a-Si TFT LCD)
CHƯƠNG 4
BỘ XỬ LÝ RASPBERRY PI
Được phát hành vào tháng 7 năm 2014, Model B + là bản sửa đổi cập nhật của
Model B. Nó
tăng số lượng cổng USB lên 4 và số lượng chân cắm trên GPIO
tiêu đề đến 40. Ngoài ra, nó đã cải tiến mạch nguồn cho phép
các thiết bị USB được cấp nguồn sẽ được gắn vào và hiện đã được cắm nóng. Kích
thước đầy đủ
trình kết nối video tổng hợp đã bị xóa và chức năng được chuyển sang
Giắc cắm âm thanh / video 3,5 mm. Khe cắm thẻ SD kích thước đầy đủ cũng đã
được thay thế bằng
khe cắm microSD mạnh mẽ hơn nhiều.
7
ECET

Trang 8
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Danh sách sau nêu chi tiết một số cải tiến so với Model B.
Các màn hình hiện tại trên cổng USB có nghĩa là B + hiện hỗ trợ cắm nóng.
Giới hạn hiện tại trên 5V cho HDMI có nghĩa là bộ chuyển đổi VGA được cấp
nguồn bằng cáp HDMI
bây giờ tất cả sẽ hoạt động
14 chân GPIO khác
Hỗ trợ đọc EEPROM cho các bảng mở rộng HAT mới
Dung lượng ổ đĩa cao hơn cho đầu ra âm thanh analog, từ một bộ điều chỉnh riêng
biệt,
có nghĩa là chất lượng DAC âm thanh tốt hơn.
Không còn vấn đề về nguồn dự phòng, do các bộ hạn chế dòng điện USB cũng
ức chế dòng chảy ngược, cùng với "diode công suất lý tưởng"
Đầu ra tổng hợp được chuyển sang giắc cắm 3,5 mm
Các trình kết nối bây giờ được di chuyển sang hai bên của bảng thay vì bốn trong
số
thiết bị ban đầu.
Đèn LED Ethernet được chuyển sang đầu nối ethernet
4 lỗ lắp được định vị vuông vắn để gắn chặt hơn vào hộp, v.v.
Thay đổi mạch nguồn cũng có nghĩa là giảm yêu cầu về nguồn của
từ 0,5W đến 1W.
Mô tả Sản phẩm:
Raspberry Pi Model B + tích hợp một số cải tiến và mới
đặc trưng. Cải thiện mức tiêu thụ điện năng, tăng khả năng kết nối và IO lớn hơn
là một trong những cải tiến đối với nền tảng ARM mạnh mẽ, nhỏ và nhẹ này
máy vi tính.
Thông số kỹ thuật
Chip Broadcom: BCM2835 SoC
Kiến trúc cốt lõi: ARM11
CPU
: Bộ xử lý ứng dụng ARM1176JZFS công suất thấp 700 MHz
số 8
ECET

Trang 9
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
GPU
: Bộ xử lý đa phương tiện Dual Core VideoCore IV®
Ký ức
: 512MB SDRAM
Hệ điều hành: Khởi động từ thẻ Micro SD, chạy phiên bản Linux
Kích thước
: 85 x 56 x 17mm
Quyền lực
: Ổ cắm Micro USB 5V, 2A
Ethernet
: Ổ cắm Ethernet 10/100 BaseT
Đầu ra video
: HDMI (phiên bản 1.3 & 1.4)
RCA tổng hợp (PAL và NTSC)
Đầu ra âm thanh
: Giắc cắm 3,5 mm, HDMI
USB
: 4 x đầu nối USB 2.0
Trình kết nối GPIO
: Đầu cắm mở rộng 40 chân 2,54 mm (100 triệu): dải 2x20
Cung cấp 27 chân GPIO cũng như +3,3 V, +5 V và GND
đường cung cấp
Đầu nối máy ảnh: Giao diện nối tiếp máy ảnh MIPI 15 chân (CSI-2)
JTAG
: Không có dân cư
Trình kết nối màn hình
: Display Serial Interface (DSI) Cáp uốn phẳng 15 chiều
kết nối với hai làn dữ liệu và một làn đồng hồ
Khe cắm thẻ nhớ: Micro SDIO
LỜI KHUYÊN:
Đã có một số thay đổi liên quan đến vòng đời của Model B,
và B +, mặc dù có những cải tiến đáng kể so với B, chỉ đơn giản là một
và dự kiến sẽ là bản cuối cùng sử dụng BCM2835. Nó có hiệu lực
sửa đổi 3 của hội đồng quản trị.
Bản sửa đổi 1 là bản sửa đổi kể từ lần khởi chạy đầu tiên, trong khi bản sửa đổi 2
đã cải thiện
nguồn và mạch USB để tăng độ tin cậy và cũng bao gồm 2 đăng ký
các lỗ cũng có thể được sử dụng để lắp thiết bị. Cũng đã có
9
ECET

Trang 10
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
những thay đổi sửa đổi nhỏ trong thời gian tồn tại của bo mạch để giúp sản xuất,
thử nghiệm và chuyển đổi dây chuyền sản xuất BOM (Bill of material).
4.5.7 MÔ ĐUN MÁY TÍNH
Mô-đun máy tính được thiết kế cho các ứng dụng công nghiệp, nó được cắt giảm
thiết bị chỉ bao gồm BCM2835, 512MB SDRAM và eMMC 4GB
bộ nhớ flash, ở dạng nhỏ. Điều này kết nối với bảng cơ sở bằng cách sử dụng
kết nối 200 chân DDR2 SODIMM được lắp lại. Lưu ý thiết bị KHÔNG SODIMM
tương thích, nó chỉ định vị lại đầu nối. Tất cả các tính năng của BCM2835 là
được tiếp xúc qua đầu nối SODIMM, bao gồm camera đôi và cổng LCD, trong khi
Mô hình A hoặc B / B + chỉ có một trong hai.
Mô-đun tính toán dự kiến sẽ được sử dụng bởi các công ty muốn sử dụng phím tắt
quá trình phát triển của sản phẩm mới, nghĩa là chỉ cần một tấm nền
được phát triển, với các thiết bị ngoại vi thích hợp, với Mô-đun Máy tính cung cấp
CPU, bộ nhớ và bộ nhớ cùng với phần mềm đã được kiểm tra và đáng tin cậy
4.5.8 Sơ đồ cho ModelB +:
10
ECET

Trang 11
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Hình 4: Sơ đồ cho ModelB +
4.5.9 BCM2835:
Chip Broadcom được sử dụng trong Raspberry Pi Model A, B và B +
BCM2835 là bộ xử lý ứng dụng đa phương tiện full HD, được tối ưu hóa về chi phí
cho
các ứng dụng di động và nhúng nâng cao yêu cầu mức cao nhất
hiệu suất đa phương tiện. Được thiết kế và tối ưu hóa để tiết kiệm năng lượng,
BCM2835
sử dụng công nghệ VideoCore IV của Broadcom để cho phép các ứng dụng trong
phương tiện
phát lại, hình ảnh, máy quay, phương tiện truyền trực tuyến, đồ họa và chơi game
3D.
Đặc trưng:
Bộ xử lý ứng dụng ARM1176JZ-F công suất thấp
11
ECET

Trang 12
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Bộ xử lý đa phương tiện Dual Core VideoCore IV®
Mã hóa / giải mã video 1080p30 Full HD HP H.264
Đường ống cảm biến hình ảnh nâng cao (ISP) cho máy ảnh lên đến 20 megapixel
hoạt động
lên đến 220 megapixel mỗi giây
Công suất thấp, GPU OpenGL-ES® 1.1 / 2.0 VideoCore hiệu suất cao. 1 Gigapixel
tỷ lệ lấp đầy mỗi giây.
Kết quả hiển thị hiệu suất cao. Đồng thời LCD và HDMI độ phân giải cao
với HDCP ở 1080p60
Tổng quat
BCM2835 chứa các thiết bị ngoại vi sau có thể được truy cập một cách an toàn bởi
cánh tay:
• Bộ hẹn giờ
• Bộ điều khiển ngắt
• GPIO
• USB
• PCM / I2S
• Bộ điều khiển DMA
• I2C chính
• I2C / SPI nô lệ
• SPI0, SPI1, SPI2
• PWM
• UART0, UART1
Mục đích của biểu dữ liệu này là cung cấp tài liệu cho các thiết bị ngoại vi này
đủ chi tiết để cho phép nhà phát triển chuyển hệ điều hành sang BCM2835.
12
ECET

Trang 13
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Có một số thiết bị ngoại vi được thiết kế để điều khiển bởi
GPU. Chúng được lấy từ biểu dữ liệu này. Truy cập các thiết bị ngoại vi này từ
ARM không được khuyến khích.
4.5.10 Các chân Đầu vào / Đầu ra Mục đích chung trên Raspberry Pi:
Trang này mở rộng về các tính năng kỹ thuật của các chân GPIO có sẵn trên
BCM2835 nói chung. Để biết các ví dụ sử dụng, hãy xem phần Sử dụng
GPIO. Khi nào
đọc trang này, nên tham khảo BCM2835 ARM
Bảng dữ liệu thiết bị ngoại vi, phần 6.
Các chân GPIO có thể được cấu hình làm đầu vào mục đích chung, mục đích
chung
đầu ra hoặc là một trong tối đa 6 cài đặt thay thế đặc biệt, các chức năng của chúng

phụ thuộc vào pin.
Có 3 ngân hàng GPIO trên BCM2835.
Mỗi trong số 3 ngân hàng có chân đầu vào VDD riêng. Trên Raspberry Pi, tất cả
các ngân hàng GPIO
được cung cấp từ 3.3V. Kết nối GPIO với điện áp cao hơn 3,3V sẽ
có khả năng phá hủy khối GPIO trong SoC.
Lựa chọn các chân từ Ngân hàng 0 có sẵn trên tiêu đề P1 trên Raspberry Pi.
4.5.11 GPIO PADS
Các kết nối GPIO trên gói BCM2835 đôi khi được tham chiếu trong
biểu dữ liệu thiết bị ngoại vi là "miếng đệm" - một thuật ngữ thiết kế bán dẫn có
nghĩa là "chip
kết nối với thế giới bên ngoài ”.
Các tấm đệm là trình điều khiển đầu ra đẩy kéo CMOS / bộ đệm đầu vào có thể
định cấu hình. Đăng ký-
cài đặt kiểm soát dựa trên có sẵn cho
Bật / tắt tính năng kéo lên / kéo xuống bên trong
Sức mạnh ổ đĩa đầu ra
Lọc kích hoạt Schmitt đầu vào
13
ECET

Trang 14
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
4.5.12 TRẠNG THÁI BẬT NGUỒN
Tất cả các GPIO hoàn nguyên về đầu vào mục đích chung khi đặt lại khi bật
nguồn. Kéo mặc định
các trạng thái cũng được áp dụng, được nêu chi tiết trong bảng chức năng thay thế
trong
Biểu dữ liệu thiết bị ngoại vi ARM. Hầu hết các GPIO đều có áp dụng kéo mặc
định.
4.5.13 INTERRUPTS
Mỗi chân GPIO, khi được định cấu hình làm đầu vào cho mục đích chung, có thể
được định cấu hình như
một nguồn ngắt tới ARM. Một số nguồn tạo ngắt là
có thể cấu hình:
Phân biệt mức độ (cao / thấp)
Cạnh tăng / giảm
Cạnh tăng / giảm không đồng bộ
Mức ngắt duy trì trạng thái ngắt cho đến khi mức đã được xóa bởi
phần mềm hệ thống (ví dụ: bằng cách bảo dưỡng thiết bị ngoại vi đính kèm tạo ra
làm gián đoạn).
Việc phát hiện cạnh lên / xuống bình thường có một lượng nhỏ đồng bộ hóa
được tích hợp vào phần phát hiện. Ở tần số xung nhịp hệ thống, chân được lấy mẫu
với
tiêu chí để tạo ra một ngắt là một quá trình chuyển đổi ổn định trong vòng 3
cửa sổ chu kỳ, tức là một bản ghi "1 0 0" hoặc "0 1 1". Phát hiện không đồng bộ
bỏ qua đồng bộ hóa này để cho phép phát hiện các sự kiện rất hẹp.
4.5.14 CÁC CHỨC NĂNG ĐẠI SỐ
Hầu như tất cả các chân GPIO đều có các chức năng thay thế. Khối ngoại vi bên
trong
thành BCM2835 có thể được chọn để xuất hiện trên một hoặc nhiều bộ chân GPIO,
cho
ví dụ các bus I2C có thể được cấu hình cho ít nhất 3 vị trí riêng biệt. Tập giấy
điều khiển, chẳng hạn như cường độ ổ đĩa hoặc lọc Schmitt, vẫn áp dụng khi chân
được cấu hình như một chức năng thay thế.
14
ECET

Trang 15
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Để biết thêm thông tin chi tiết, hãy xem Trang thiết bị ngoại vi cấp thấp trên
elinuxwiki Có 54 đường I / O (GPIO) đa năng được chia thành hai ngân hàng. Tất
cả
Các chân GPIO có ít nhất hai chức năng thay thế trong BCM. Thay thế
các chức năng thường là IO ngoại vi và một thiết bị ngoại vi có thể xuất hiện trong
mỗi
ngân hàng để cho phép linh hoạt trong việc lựa chọn IOvoltage. Chi tiết thay thế
các chức năng được đưa ra trong phần 6.2. Chức năng thay thế
Sơ đồ khối cho một chân GPIO riêng lẻ được đưa ra dưới đây:
Hình 5: Sơ đồ khối GPIO
Thiết bị ngoại vi GPIO có ba đường ngắt dành riêng. Những
các dòng được kích hoạt bằng cách thiết lập các bit trong phát hiện sự kiện
đăng kí trạng thái. Mỗi ngân hàng có 'đường gián đoạn riêng với
dòng thứ ba được chia sẻ giữa tất cả các bit.
Bảng chức năng Thay thế cũng có trạng thái kéo (pull-up / pull-
xuống) được áp dụng sau khi mất điện.
15
ECET

Trang 16
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
4.5.15 UART
Thiết bị BCM2835 có hai UARTS. Trên UART mini và và
PL011 UART. Phần này mô tả PL011 UART. Để biết chi tiết
của UART mini xem 2.2 Mini UART. PL011 UART là một
Bộ tiếp nhận không đồng bộ / đồng bộ chuyển giao. Đây là ARM
Triển khai UART (PL011). UART thực hiện nối tiếp đến
chuyển đổi song song trên các ký tự dữ liệu nhận được từ một
thiết bị ngoại vi bên ngoài hoặc modem và song song với-
chuyển đổi tuần tự trên các ký tự dữ liệu nhận được từ
Bus ngoại vi nâng cao (APB).
4.13.1 S3C2440A - BỘ VI XỬ LÝ RISC 32-BIT
Ngành kiến trúc:
• Hệ thống tích hợp cho các thiết bị cầm tay và các ứng dụng nhúng chung.

Kiến trúc RISC 16/32-Bit và tập lệnh mạnh mẽ với RASPBERRY PI20T
Lõi CPU.
• MMU kiến trúc ARM nâng cao để hỗ trợ WinCE, EPOC 32 và Linux.
• Bộ đệm lệnh, bộ đệm dữ liệu, bộ đệm ghi và địa chỉ vật lý TAG RAM vào
giảm ảnh hưởng của băng thông bộ nhớ chính và độ trễ đối với hiệu suất.
• Lõi CPU RASPBERRY PI20T hỗ trợ kiến trúc gỡ lỗi ARM.
• Bus vi điều khiển nâng cao bên trong
16
ECET

Trang 17
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 5
VĂN BẢN ĐỂ PHÁT BIỂU CHUYỂN ĐỔI
5.1 Luồng tổng hợp giọng nói
Tệp văn bản sẽ được cung cấp cho Phân tích Văn bản, nó tải độ dài của tệp Văn
bản Viết và
nó tạo ra Cụm từ không hợp lệ và Nhóm từ này sẽ được cấp cho
Phasing và Phasing được sử dụng để phân chia Nhóm từ từ tệp Văn bản và
Ngữ điệu được sử dụng để quét từng ký tự từ Phasing và Thời lượng được sử dụng
để
đếm thời lượng của các ký tự từ Ngữ điệu và Phân tích Ngôn ngữ là để
thay đổi Ngôn ngữ theo kiểu dệt và nó tạo ra Utterance bao gồm
Âm vị và bằng cách sử dụng khối Bộ tạo dạng sóng Giọng nói tổng hợp được tạo
sẵn trong Flite Speech
Tổng hợp sẽ đọc các Âm vị đầu ra thông qua cổng Âm thanh.
17
ECET
LINGUISTIC
PHÂN TÍCH
PHASING
ÂM ĐIỆU
WAVEFORM
THẾ HỆ
BẢN VĂN
PHÂN TÍCH

Trang 18
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Bản văn
Phát biểu
Utterance sáng tác
Utterance sáng tác
Của từ
âm vị
HÌNH 5.1 DÒNG TỔNG HỢP PHÁT ÂM
CHƯƠNG 6
GIAO DIỆN ADC & MONITOR
6.1 TỔNG QUAN
CMOS ADC 10 bit (Bộ chuyển đổi tương tự sang kỹ thuật số) là thiết bị loại tái
chế với 8 kênh
Đầu vào analog. Nó chuyển đổi tín hiệu đầu vào tương tự thành mã số nhị phân 10
bit ở mức tối đa
tỷ lệ chuyển đổi 500KSPS với xung nhịp chuyển đổi A / D 2,5MHz. Bộ chuyển đổi
A / D hoạt động trên chip
Chức năng lấy mẫu và giữ và chế độ tắt nguồn được hỗ trợ. Giao diện màn hình có
thể điều khiển / chọn
miếng đệm (XP, XM, YP, YM) của Màn hình để chuyển đổi vị trí X, Y. Giao diện
màn hình chứa
Logic điều khiển Monitor Pads và logic giao diện ADC với logic tạo ngắt .
6.2 TÍNH NĂNG
• Độ phân giải: 10-bit
• Lỗi tuyến tính khác biệt: 1.0 LSB

Lỗi tuyến tính tích phân: 2.0 LSB

Tỷ lệ chuyển đổi tối đa: 500 KSPS
• Tiêu thụ điện năng thấp
• Điện áp cung cấp điện: 3.3V
• Phạm vi đầu vào tương tự: 0 ~ 3.3V
• Chức năng lấy mẫu và giữ mẫu trên chip
• Chế độ chuyển đổi bình thường
• Chế độ chuyển đổi vị trí X / Y riêng biệt
• Chế độ chuyển đổi vị trí X / Y tự động (tuần tự)
• Đang chờ Chế độ ngắt
18
ECET
DURATION

Trang 19
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Bộ chuyển đổi tương tự sang kỹ thuật số (ADC, A / D hoặc A sang D) là một thiết
bị chuyển đổi liên tục
đại lượng vật lý (thường là điện áp) thành một số kỹ thuật số đại diện cho đại
lượng
biên độ.
Việc chuyển đổi liên quan đến lượng tử hóa đầu vào, vì vậy nó nhất thiết phải giới
thiệu một lượng nhỏ
của lỗi. Thay vì thực hiện một chuyển đổi đơn lẻ, một ADC thường thực hiện các
chuyển đổi
(" lấy mẫu" đầu vào) theo định kỳ. Kết quả là một chuỗi các giá trị kỹ thuật số đã
được
được chuyển đổi từ tín hiệu tương tự biên độ liên tục và thời gian liên tục sang tín
hiệu rời rạc
thời gian và tín hiệu kỹ thuật số biên độ rời rạc .
ADC hoạt động bằng cách lấy mẫu giá trị của đầu vào theo các khoảng thời gian
riêng biệt. Với điều kiện là
đầu vào được lấy mẫu trên tỷ lệ Nyquist , được xác định là gấp đôi tần số cao nhất
của
lãi suất thì tất cả các tần số trong tín hiệu có thể được tái tạo lại. Nếu tần số trên
một nửa
Tỷ lệ Nyquist được lấy mẫu, chúng được phát hiện không chính xác là tần số thấp
hơn, một quá trình
được gọi là răng cưa. Hiện tượng sai lệch xảy ra do lấy mẫu ngay lập tức một hàm
ở hai hoặc
ít lần hơn mỗi chu kỳ dẫn đến chu kỳ bị bỏ lỡ, và do đó, sự xuất hiện của một
tần số thấp hơn. Ví dụ, một sóng sin 2 kHz được lấy mẫu ở 1,5 kHz sẽ là
được tái tạo dưới dạng sóng hình sin 500 Hz.
Để tránh răng cưa, đầu vào ADC phải được lọc thông thấp để loại bỏ các tần số
trên
một nửa tỷ lệ lấy mẫu. Bộ lọc này được gọi làbộ lọc chống răng cưavà rất cần thiết
cho một
hệ thống ADC thực tế được áp dụng cho các tín hiệu tương tự với nội dung tần số
cao hơn. Trong
các ứng dụng cần bảo vệ chống răng cưa, việc lấy mẫu quá mức có thể được sử
dụng để
giảm đáng kể hoặc thậm chí loại bỏ nó.
Một ADC được xác định bởi băng thông của nó (dải tần số mà nó có thể đo được)
và tín hiệu của nó
tỷ lệ nhiễu (nó có thể đo chính xác tín hiệu so với nhiễu mà nó đưa vào). Các
băng thông thực tế của một ADC được đặc trưng chủ yếu bởi tốc độ lấy mẫu của
nó và
mức độ xử lý các lỗi như răng cưa. Các dải động của một ADC bị ảnh hưởng
bởi nhiều yếu tố, bao gồm cả độ phân giải (số lượng mức đầu ra mà nó có
thể lượng tử hóa một tín hiệu
to), tuyến tính và độ chính xác (mức độ lượng tử hóa khớp với tín hiệu tương tự
thực sự tốt như thế nào)
và jitter (lỗi thời gian nhỏ gây nhiễu bổ sung). Phạm vi động của ADC
thường được tóm tắt về số lượng bit hiệu dụng (ENOB), số lượng bit của
mỗi phép đo nó trả về trung bình không phải là tiếng ồn. Một ADC lý tưởng có
ENOB bằng
độ phân giải. ADC được chọn để phù hợp với băng thông và tỷ lệ tín hiệu trên
nhiễu yêu cầu của
19
ECET

Trang 20
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
tín hiệu cần lượng tử hóa. Nếu một ADC hoạt động với tốc độ lấy mẫu lớn hơn hai
lần
băng thông của tín hiệu, sau đó có thể tái tạo hoàn hảo với một bộ ADC lý tưởng

bỏ qua lỗi lượng tử hóa. Sự hiện diện của lỗi lượng tử hóa giới hạn phạm vi động
của
thậm chí là một ADC lý tưởng, tuy nhiên, nếu phạm vi động của ADC vượt quá
phạm vi đầu vào
tín hiệu, các hiệu ứng của nó có thể bị bỏ qua dẫn đến việc trình bày kỹ thuật số
hoàn hảo về cơ bản
tín hiệu đầu vào.
ADC cũng có thể cung cấp một phép đo riêng biệt chẳng hạn như một thiết bị điện
tử chuyển đổi
điện áp tương tự đầu vào hoặc dòng điện thành một số kỹ thuật số tỷ lệ với độ lớn
của
điện áp hoặc dòng điện. Tuy nhiên, một số thiết bị không điện tử hoặc chỉ một
phần điện tử, chẳng hạn như
như bộ mã hóa quay , cũng có thể được coi là ADC. Đầu ra kỹ thuật số có thể sử
dụng mã hóa khác nhau
các kế hoạch. Thông thường, đầu ra kỹ thuật số sẽ là số nhị phân bổ sung của
hai số đó là
tỷ lệ với đầu vào, nhưng có những khả năng khác. Ví dụ: một bộ mã hóa có thể
xuất mã màu xám.
20
ECET

Trang 21
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 7
CÁC CHẾ ĐỘ FUNCTIOANL PHẦN CỨNG
7.1 LOA
Loa của hệ thống là thành phần nhận tín hiệu điện tử được lưu trữ trên những thứ
như
CD, băng và DVD và biến nó trở lại thành âm thanh thực tế mà chúng ta có thể
nghe thấy.
Để hiểu cách hoạt động của loa, cần phải hiểu cách thức hoạt động của âm
thanh. Bên trong
tai người, có một mảnh da rất mỏng gọi là màng nhĩ . Khi màng nhĩ rung,
bộ não con người diễn giải các rung động là âm thanh và đó là cách chúng
ta nghe . Những thay đổi nhanh chóng
trong áp suất không khí là điều phổ biến nhất để làm rung màng nhĩ.
21
ECET
Trang 22
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Một vật thể tạo ra âm thanh khi nó dao động trong không khí (âm thanh cũng có
thể truyền qua chất lỏng và
chất rắn mà không khí là môi trường truyền khi ta nghe loa). Khi cái gì
rung động, nó di chuyển các hạt không khí xung quanh nó. Đến lượt các hạt không
khí đó chuyển động các hạt không khí
xung quanh chúng, mang theo xung của rung động trong không khí như một nhiễu
loạn di chuyển.
Để xem cách này hoạt động như thế nào, một vật dao động đơn giản, một cái
chuông, được xem xét. Khi chuông rung,
kim loại rung động, uốn cong trong và ngoài, nhanh chóng. Khi nó uốn ra ở một
bên, nó sẽ đẩy ra
các hạt không khí xung quanh ở phía đó. Các hạt không khí này sau đó va chạm
với các hạt trong
trước mặt chúng, va chạm với các hạt phía trước chúng, v.v.
Khi chuông uốn cong ra xa, nó kéo theo các hạt không khí xung quanh này, tạo ra
một giọt
áp suất kéo theo nhiều hạt không khí xung quanh hơn, tạo ra một sự sụt giảm khác
áp suất kéo các hạt thậm chí ra xa hơn, v.v. Sự giảm áp suất này
được gọi là sự hiếm gặp. Bằng cách này, một vật dao động sẽ gửi một sóng dao
động áp suất
qua bầu khí quyển. Khi sóng dao động đến tai người, nó làm rung
màng nhĩ qua lại. Do đó, bộ não diễn giải chuyển động này thành âm thanh.
7.1.1 LOA LOẠI MONO
Loa Monotype sử dụng các trình điều khiển tương tự được bố trí ở đầu nhỏ của cấu
trúc kiểu hình nón.
Loại loa truyền thống nhất là loa kèn. Trình điều khiển được gắn với một hướng
dẫn sóng
kết cấu. Loại loa này cho độ nhạy và truyền âm thanh cao
hiệu quả trong các khu vực rộng lớn .
7.1.2 LOA ĐỘNG
Loại loa phổ biến nhất, những thiết bị này thường là loa thụ động. Họ
thường có một hoặc nhiều trình điều khiển loa trầm để tạo ra âm thanh tần số thấp,
điều này cũng
được gọi là bass. Một hoặc nhiều trình điều khiển loa tweeter trong trình điều
khiển động tạo ra tần số cao
22
ECET

Trang 23
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
âm thanh hoặc âm bổng. Loa năng động âm thanh chuyên nghiệp cung cấp hiệu
suất cao hơn cũng có thể
có trình điều khiển ở phía sau của thùng loa để khuếch đại âm thanh hơn nữa.
7.1.3 LOA SUBWOOFER
Loa siêu trầm là loa động một trình điều khiển với một trình điều khiển loa trầm
duy nhất. Loa
thùng loa thường bao gồm một cổng âm trầm để tăng hiệu suất tần số thấp. Những
loa được sử dụng để truyền âm trầm hoặc âm thanh tần số thấp. Chúng cũng được
sử dụng để nâng cao
âm trầm từ bất kỳ loa chính nào đi kèm trong hệ thống nhiều loa, cho phép người
dùng
cung cấp và tăng cường âm trầm mà không ảnh hưởng đến âm thanh khác ở tần số
cao hơn.
7.2 CUNG CẤP ĐIỆN
Đầu vào cho mạch được áp dụng từ nguồn điện được điều chỉnh. Các
đầu vào xoay chiều tức là, 230V từ nguồn cung cấp chính là bước xuống bởi
biến áp thành 12V và được đưa đến bộ chỉnh lưu. Sản lượng thu được từ
chỉnh lưu là một điện áp một chiều xung. Vì vậy, để có được điện áp một chiều
thuần túy,
điện áp đầu ra từ bộ chỉnh lưu được đưa đến bộ lọc để loại bỏ bất kỳ dòng điện
xoay chiều nào
các thành phần hiện diện ngay cả sau khi chỉnh lưu. Bây giờ, điện áp này được cấp
cho
một bộ điều chỉnh điện áp để thu được điện áp thuần một chiều không đổi.
Hình 7.2 CUNG CẤP ĐIỆN
7.2.1 Máy biến áp:
23
ECET

Trang 24
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Thông thường, điện áp DC được yêu cầu để vận hành các
thiết bị và các điện áp này là 5V, 9V hoặc 12V. Nhưng những điện áp này
không thể lấy trực tiếp. Do đó, đầu vào xoay chiều có sẵn tại nguồn điện
nguồn cung cấp tức là 230V sẽ được đưa xuống mức điện áp yêu cầu. Điều này
được thực hiện bởi một máy biến áp. Do đó, một máy biến áp bước xuống được sử
dụng để
giảm điện áp đến mức cần thiết.
7.2.2 Bộ chỉnh lưu:
Đầu ra từ máy biến áp được đưa đến bộ chỉnh lưu. Nó chuyển đổi
AC thành DC xung Bộ chỉnh lưu có thể là nửa sóng hoặc toàn sóng
bộ chỉnh lưu. Trong dự án này, một bộ chỉnh lưu cầu được sử dụng vì những ưu
điểm của nó như
ổn định tốt và chỉnh sóng đầy đủ.
7.2.3 Bộ lọc:
Bộ lọc điện dung được sử dụng trong dự án này. Nó loại bỏ các gợn sóng khỏi
đầu ra của bộ chỉnh lưu và làm mịn Đầu ra DC nhận được từ điều này
bộ lọc không đổi cho đến khi điện áp nguồn và tải được duy trì không đổi.
Tuy nhiên, nếu một trong hai thay đổi, điện áp DC nhận được tại thời điểm này
những thay đổi. Do đó, một bộ điều chỉnh được áp dụng ở giai đoạn đầu ra.
7.2.4 Bộ điều chỉnh điện áp:
Như chính cái tên của nó, nó quy định đầu vào được áp dụng cho nó. Bộ điều
chỉnh điện áp là một
bộ điều chỉnh điện được thiết kế để tự động duy trì mức điện áp không đổi. Trong
dự án này, điện
Nguồn cung cấp 5V và 12V được yêu cầu. Để có được các mức điện áp này, điện
áp 7805 và 7812
các bộ điều chỉnh sẽ được sử dụng. Đầu số 78 tượng trưng cho cung dương và các
số 05, 12
đại diện cho các mức điện áp đầu ra yêu cầu.
24
ECET
Trang 25
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 8
SƠ ĐỒ
25
ECET
MÀN HÌNH LCD TFT
VÀ LOA
khởi đầu
RASPBERRY PI
BỘ CHẾ BIẾN
Cáp HDmi

Trang 26
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 9
MÔ TẢ PHẦN MỀM
Thủ tục phải được thực hiện trên nền tảng ubuntu
1) sudo apt-get install build-essential automake autoconfig libtool
2) Sử dụng Trình quản lý gói Synaptic, cài đặt các thư viện bên dưới trong hệ
thống của bạn
➢ Git-core

➢ ia32-libs
26
ECET
QUTOIA TTS
(Chuyển văn bản thành giọng nói)
Chọn mong muốn
tệp từ máy tính để bàn
Chơi
dừng lại
stosop
Kết thúc

Trang 27
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
➢ gcc-arm-linux-gnueabi

➢ năng khiếu

➢ libncurses5-dev

➢ autoconf

➢ libtool

➢ libqt4-dev

➢ qt4-dev-tools

➢ libusb-dev
3) sudo apt-get install dh-autoreconf realpath
CÀI ĐẶT VÀ CẤU HÌNH RASPBERRY PI FRIENDLYARM TRÊN UBUNTU
Phần mềm đầu tiên chúng ta cần trên hệ thống ubuntu của mình trong minicom.
hyperterminal. Cài đặt minicom đầu tiên
sudo apt-get install minicom
Bây giờ kết nối Raspberry pi với hệ thống của chúng tôi hai kết nối một từ cổng
nối tiếp và tiếp theo
từ phích cắm USB Loại B phải được thực hiện với hệ thống. Trên bảng điều khiển
thân thiện,
Công tắc NAND / NOR phải được đặt ở vị trí NOR
Bây giờ gọi minicom từ terminal bằng lệnh
sudo minicom
thông thường bạn sẽ nhận được một cái gì đó như thế này trên thiết bị đầu cuối của
bạn
27
ECET

Trang 28
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Vấn đề là bạn cần cấu hình minicom cổng vv sử dụng lệnh dmesg this
lệnh cũng liệt kê một số thông báo khác, do đó bạn phải quan sát chặt chẽ cổng nào
bảng được kết nối. Ở đây tôi đang sử dụng bộ chuyển đổi nối tiếp sang USB nên
cổng được phát hiện cho tôi
là ttyUSB0 nếu bạn kết nối nó với chính cổng nối tiếp nó sẽ khác
giết minicom bằng lệnh
sudo pkill minicom
sau đó gọi minicom bằng cách sử dụng
sudo minicom -s
Nó sẽ cho một màn hình như thế này
28
ECET

Trang 29
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
chọn thiết lập cổng nối tiếp và nhấn enter
có thay đổi thiết bị nối tiếp sang cổng được phát hiện trong trường hợp của tôi, nó
sẽ là / dev / ttyUSB0 (Nó có thể thay đổi
từ 0 đến bất kỳ số nào) chúng tôi có thể chỉnh sửa bằng cách chọn tùy chọn
“A”. Cũng kiểm tra kỹ xem cả hai
kiểm soát luồng phần mềm và phần cứng phải ở KHÔNG
29
ECET

Trang 30
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Nhấn Enter, Sau đó chọn lưu thiết lập dưới dạng dfl
Sau đó thoát khỏi minicom và thử lệnh đầu tiên của chúng tôi
sudo minicom
30
ECET

Trang 31
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Nếu mọi thứ diễn ra chính xác thì bạn sẽ nhận được một bộ tải khởi động như thế
này. Đây là trình cài đặt sẵn
Bộ nạp khởi động “SuperVivi” trên bộ nhớ.
THIẾT LẬP SUPERVIVI, KERNEL & QTOPIA TRONG RASPBERRY PI
Tải xuống usbpush - http://www.friendlyarm.net/dl.php?file=usbpush.zip
Các tệp còn lại được tải vào Raspberry pi có thể được tìm thấy trong thư mục CD /
hình ảnh được cung cấp
Giải nén usbpush tiện ích này giúp chúng tôi đẩy các tệp hình ảnh từ hệ thống của
mình sang
Mục tiêu Raspberry pi. Khi giải nén chúng ta có thể thấy thêm một thư mục
usbpush bên trong thư mục đó
sẽ có một tệp nhị phân usbpush cấp quyền thực thi cho tệp nhị phân đó
sudo chmod + x usbpush / usbpush / usbpush
31
ECET

Trang 32
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Lấy bộ nạp khởi động bằng lệnh.
sudo minicom
Chọn “ x” và định dạng đèn flash NAND
Bây giờ bước tiếp theo là tải supervivi vào bảng đích bằng usbpush. Supervivi là
khởi động
bộ nạp.
Đầu tiên chọn " V "
Chỉ sau khi này, bạn mới nên đẩy tệp từ hệ thống máy chủ. Đẩy tệp như thế này
sudo ./usbpush/usbpush/usbpush supervivi_20100818 / supervivi-128M
32
ECET

Trang 33
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Nếu quá trình đẩy thành công thì lời nhắc minicom sẽ giống như thế này và sẽ
quay lại
bộ nạp khởi động
Và lời nhắc usbpush sẽ như thế này
Vậy là đã cài đặt thành công supervivi. Tiếp theo là zImage, ảnh Kernel do kernel
tạo ra
quá trình xây dựng là tệp “Hình ảnh” không nén hoặc tệp zImage nén. Đây chúng
tôi
chọn zImage W35 vì RASPBERRY PI với màn hình 3,5 ".
Bây giờ chúng tôi chọn tùy chọn " K " để tải xuống nhân Linux và đẩy zImage đã
giải nén
sudo ./usbpush/usbpush/usbpush linux-zImage_20110421 / zImage_W35
Sau bước này, hình ảnh hạt nhân Linux cơ bản sẽ được tải vào bộ nhớ
Bây giờ chúng ta cần Tải xuống hình ảnh yaffs gốc. YAFFS (Hệ thống tệp Flash)
hiện đã có trong nó
thế hệ thứ hai và cung cấp hệ thống tệp mạnh mẽ nhanh chóng cho NAND và NOR
Flash.
Chọn " Y " để tải xuống hình ảnh yaffs và đẩy tệp hình ảnh qtopia
33
ECET

Trang 34
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Nó sẽ tốn chút thời gian…
Bây giờ chúng ta đã hoàn thành tất cả các bước chọn “ b ” để khởi động hệ thống
Sau khi khởi động chọn này. Sau đó, bảng sẽ khởi động và chúng tôi sẽ nhận được
lời nhắc của cánh tay thân thiện
34
ECET

Trang 35
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Bây giờ hãy hiệu chỉnh màn hình bằng cách nhấp vào hình chữ thập được hiển thị
và bạn sẽ được đưa đến qtopia
màn hình theo mặc định qtopia sẽ bằng tiếng Trung ở tab thứ hai có biểu tượng cờ
chọn nó
thay đổi ngôn ngữ chọn tiếng Anh và chúng tôi đã hoàn tất
THIẾT LẬP CÔNG CỤ LỌC CHÉO ĐỂ SO SÁNH
Vì vậy, trước tiên, chúng tôi cần một số gói được cài đặt trong hệ thống của chúng
tôi, chúng
sudo apt-get install build-essential make ncurses gcc g ++ libncurses5 libncueses5-
dev
Sau đó, chúng tôi cần tải xuống gói hoặc nó có thể được tìm thấy trong thư mục
CD Linux được cung cấp
Tải xuống Tệp do chúng tôi cung cấp và làm theo các lệnh bên dưới
35
ECET

Trang 36
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Định cấu hình Arm gcc
sudo toolchain.tgz / usr / local /
cd / ..
cd / usr / local /
sudo tar –xvf toochain.tgz
sudo chmod uga + rw –R toochain
Sau đó đến Thư mục Trang chủ của bạn ở đó gõ
sudo gedit .bashrc
Trong tệp này ở dưới cùng, dán đường dẫn của thư mục bằng cách thực hiện
“pwd” tại tệp được lưu trữ ..for
ví dụ ... bên dưới in đậm là đường dẫn bạn nhận được từ cmd pwd được thực hiện
tại nơi bạn lưu thư mục
xuất PATH = / usr / local / toolschain / 4.4.3 / bin /: $ PATH
export CROSS_COMPILE = arm-none-linux-gnueabi-
Sau khi khởi động lại hệ thống, hãy mở một thiết bị đầu cuối và nhập “arm-linux-
gcc –v”, sau đó bạn nên
đã nhận được đầu ra của phiên bản gcc. Nếu vậy bạn đã cài đặt thành công arm
gcc.
CHẠY CHƯƠNG TRÌNH AC TRÊN RASPBERRY PI
Tôi đang tạo một chương trình Hello World đơn giản trong C. Đây là chương trình
36
ECET

Trang 37
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
#include <stdio.h>
int main () {
printf ("Xin chào Thế giới \ n");
}
Lưu nó dưới dạng hello.c. Bây giờ biên dịch nó cho mục tiêu của chúng tôi hoặc
Raspberry pi.
mở thiết bị đầu cuối và thay đổi thư mục thành thư mục có chương trình c và đưa
ra vấn đề này
chỉ huy
arm-linux-gcc hello.c -o xin chào
Lệnh arm-linux-gcc hiện diện bcoz chúng tôi thiết lập chuỗi công cụ sớm. Bây giờ
là một nhị phân
xin chào sẽ có trong thư mục. Sử dụng lệnh tệp để biết loại nhị phân mà nó sẽ
phù hợp với ARM.
Di chuyển nhị phân sang Raspberry pi bằng ổ bút hoặc sdcard. Để xem đầu ra, hãy
thực thi
nhị phân như thế này.
./xin chào
Bạn có thể tải xuống trực tiếp các tệp do chúng tôi cung cấp và lưu vào / usr / local
/ và cung cấp
quyền, chi tiết bên dưới cho mục đích trình bày của bạn
Cài đặt Qt4.6.3 trong Raspberry pi
37
ECET

Trang 38
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
Cách cài đặt Qt4.6.3 trong Raspberry pi được liệt kê bên dưới.
Đầu tiên, bạn nên có cái nhìn chung về tác phẩm:
1. biên dịch tslib (tslib là các thư viện để làm cho Màn hình hoạt động)
2. Biên dịch Qt 4.6.3
3. Sao chép thư viện của tslib và Qt4.6.3 vào bảng Raspberry pi.
4. Cấu hình môi trường trong Raspberry pi board.
5. Chạy chương trình ví dụ Qt.
1. tslib biên dịch
$ sudo mkdir / usr / local / tslib
$ git clone http://github.com/kergoth/tslib.git
$ export CROSS_COMPILE = arm-none-linux-gnueabi-
$ export CC = $ {CROSS_COMPILE} gcc
$ export CFLAGS = -march = armv4t
$ export CXX = $ {CROSS_COMPILE} "g ++"
$ export AR = $ {CROSS_COMPILE} "ar"
$ export AS = $ {CROSS_COMPILE} "dưới dạng"
$ export RANLIB = $ {CROSS_COMPILE} "ranlib"
$ export LD = $ {CROSS_COMPILE} "ld"
$ export STRIP = $ {CROSS_COMPILE} "dải"
$ export ac_cv_func_malloc_0_nonnull = yes
$ cd tslib
$. / autogen-clean.sh
$. / autogen.sh
$. / config --host = arm-linux --prefix = / usr / local / tslib --enable-shared = yes
--enable-
static = yes
$ make
$ sudo thực hiện cài đặt
# sau khi biên dịch tslib thành công
root @ laptop: / usr / local / tslib
38
ECET

Trang 39
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
root @ máy tính xách tay: ls
bin vv bao gồm lib
2. Biên dịch Qt4.6.3
#get Qt4.6.3 từ liên kết http://download.qt-project.org/archive/qt/4.6/
#copy vào thư mục chính
$ tar -zxvf qt-mọi nơi-opensource-src-4.6.3.tar.gz
$ cd qt-mọi nơi-opensource-src-4.6.3
$ cd mkspecs / chung /
$ gedit g ++. conf
#change QMAKE_CFLAGS_RELEASE + = -O2
#into QMAKE_CFLAGS_RELEASE + = -O0
#lưu các tập tin
$ cd /usr/local/qt-everywhere-opensource-src-4.6.3/mkspecs/qws/linux-arm-g++/
$ gedit qmake.conf
/ ************************************************* ***********
thay đổi tệp thành, lưu ý rằng, đường dẫn /usr/local/arm/4.3.2/ là đường dẫn mà
bạn
chuỗi công cụ đã cài đặt. tức là vào / usr / local /, làm thư mục “pwd” cho toochain
sao chép
đường dẫn và thay thế bằng đã đề cập ở trên.
/ ************************************************* ********* /
#
# qmake cấu hình để xây dựng với arm-linux-g ++
#
bao gồm (../../ common / g ++. conf)
bao gồm (../../ common / linux.conf)
39
ECET

Trang 40
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
bao gồm (../../ common / qws.conf)
# sửa đổi đối với g ++. conf
QMAKE_CC
= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc -msoft-float
-D__GCC_FLOAT_NOT_NEEDED -march = armv4t -mtune = Raspberry pi20t
-O0-Regi
QMAKE_CXX
= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++ -msoft-float
-D__GCC_FLOAT_NOT_NEEDED -march = armv4t -mtune = Raspberry pi20t
-O0-Regi
QMAKE_LINK
= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++ -msoft-float
-D__GCC_FLOAT_NOT_NEEDED -march = armv4t -mtune = Raspberry pi20t
-O0-Regi
QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-
float -D__GCC_FLOAT_NOT_NEEDED -march = armv4t -mtune = Raspberry
pi20t -O0-Regi
# sửa đổi đối với linux.conf
QMAKE_AR
= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY
= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP
= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-strip
QMAKE_INCDIR + = / home / tslib / include /
QMAKE_LIBDIR + = / home / tslib / lib /
QMAKE_CFLAGS_RELEASE + = -march = armv4 -mtune = Raspberry pi20t
QMAKE_CFLAGS_DEBUG + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_MT + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_MT_DBG + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_MT_DLL + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_MT_DLLDBG + = -march = armv4t -mtune = Raspberry
pi20t
QMAKE_CFLAGS_SHLIB + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_THREAD + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_WARN_OFF + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CFLAGS_WARN_ON + = -march = armv4t -mtune = Raspberry pi20t
40
ECET

Trang 41
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
QMAKE_CXXFLAGS_DEBUG + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CXXFLAGS_MT + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CXXFLAGS_MT_DBG + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CXXFLAGS_MT_DLL + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CXXFLAGS_MT_DLLDBG + = -march = armv4t -mtune = Raspberry
pi20t
QMAKE_CXXFLAGS_RELEASE + = -march = armv4t -mtune = Raspberry
pi20t
QMAKE_CXXFLAGS_SHLIB + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CXXFLAGS_THREAD + = -march = armv4t -mtune = Raspberry pi20t
QMAKE_CXXFLAGS_WARN_OFF + = -march = armv4t -mtune = Raspberry
pi20t
QMAKE_CXXFLAGS_WARN_ON + = -march = armv4t -mtune = Raspberry
pi20t
tải (qt_config)
# sau đó, lưu tệp. Tiếp tục trên bảng điều khiển:
$ sudo mkdir / usr / local / Qt
$ cd qt-mọi nơi-opensource-src-4.6.3
$. / configure -embedded arm -xplatform qws / linux-arm-g ++ -prefix / usr / local /
Qt -qt-
mouse-tslib -little-endian -no-webkit -no-qt3support -no-cup -no-largefile
-optimized-
qmake -no-openssl -nomake tools -qt-sql-sqlite -no-3dnow -system-zlib -qt-gif -qt-
libtiff
-qt-libpng -qt-libmng -qt-libjpeg -no-opengl -gtkstyle -no-openvg -no-xshape -no-
xsync
-no-xrandr -qt-freetype -qt-gfx-linuxfb -qt-kbd-tty -qt-kbd-linuxinput -qt-mouse-
tslib
-qt-mouse-linuxinput
#chose 'o' Ấn bản Nguồn Mở
#chose 'yes' để chấp nhận đề nghị cấp phép
# sau đó, bạn sẽ đợi trong khoảng 5 phút
$ make
41
ECET

Trang 42
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
# sẽ mất gần một giờ trên máy tính xách tay lõi 1.7GHz đến hạn của tôi, quá lâu!
$ thực hiện cài đặt
#Ok, nếu quá trình biên dịch hoàn tất, bạn sẽ thấy các tệp kết quả trong / usr / local
/ Qt.
3. Sao chép thư viện của tslib và Qt4.6.3into Raspberry pi board.
# Tôi sử dụng sdcard hoặc ổ đĩa để sao chép tệp từ Ubuntu sang bảng Raspberry
pi. Nó nên được sao chép
thư viện của tslib, Qt và chương trình ví dụ của Qt sẽ được chạy trên bảng
Raspberry pi.
Thư viện #copy và chương trình ví dụ của Qt.
$ cd / usr / local / Qt / lib
$ cp * 4.6.3 / media / pen drive name /
$ cp -r phông chữ / / media / pen drive name /
$ cd / usr / local / Qt
$ cp -r demo / / media / pen drive name /
#copy tslib vào ổ bút
$ mkdir / media / Pen drive name / tslib / lib /
$ cd / home / tslib / lib /
$ cp -r * / media / Pen drive name / tslib / lib /
$ cp * / media / Pen drive name / tslib / lib /
# đặt thẻ nhớ SDcard hoặc ổ đĩa của bạn vào bảng Raspberry pi, sao chép tất cả tệp
vào bảng.
#in Bảng điều khiển Raspberry pi
$ mkdir / usr / local / Qt / lib /
$ cp /sdcard/*4.6.3/usr/local/Qt/lib/ (hoặc) cp /udisk/*4.6.3/usr/local/Qt/lib/
# đổi tên tất cả * .4.6.3in / usr / local / Qt / lib thành * .4 chẳng hạn
$ mv libQtCore.so.4.6.3libQtCore.so.4
$ cp -r / sdcard / font / / usr / local / Qt / lib / (or) cp -r / udisk / font / / usr / local /
Qt / lib /
$ cp -r / sdcard / demo / / mnt / (hoặc) cp -r / udisk / demo / / mnt /
$ cp -r / sdcard / tslib / / usr / local / (hoặc) cp -r / udisk / tslib / / usr / local /
42
ECET

Trang 43
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
4. Cấu hình môi trường trong Raspberry pi board.
Hướng dẫn dưới đây sẽ làm cho board Raspberry pi không tải được màn hình
nền Vì vậy, bảng sẽ tải
hệ thống cho đến màn hình đen với logo Linus và một số dòng ghi chú. Chúng ta
nên ngăn chặn
desktop của Raspberry pi vì điều đó giúp các chương trình Qt mẫu không xung đột
với màn hình
máy tính để bàn
$ cd /etc/init.d/
$ vi rcS
#comment ba dòng cuối cùng:
# bin / qtopia &
#echo "
"> / dev / tty1
#ehco "Đang khởi động Qtopia, vui lòng đợi ..."> / dev / tty1
# Cấu hình môi trường trong Raspberry pi:
$ cd / etc /
hồ sơ $ vi
#thêm những dòng đó vào cuối tệp
xuất LD_LIBRARY_PATH = / usr / local / tslib / lib
xuất QTDIR = / usr / local / Qt
xuất QWS_MOUSE_PROTO = tslib: / dev / input / event0
xuất TSLIB_CALIBFILE = / etc / pointercal
xuất TSLIB_CONFFILE = / usr / local / etc / ts.conf
xuất TSLIB_CONSOLEDEVICE = không có
xuất TSLIB_FBDEVICE = / dev / fb0
xuất TSLIB_PLUGINDIR = / usr / local / tslib / lib / ts
xuất TSLIB_TSDEVICE = / usr / local / tslib / lib / ts
xuất TSLIB_TSEVENTTYPE = INPUT
xuất QWS_DISPLAY = LinuxFB: mmWidth = 105: mmHeight = 140
# lưu nó.
43
ECET

Trang 44
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
MÃ NGUỒN CỦA DỰ ÁN
Main.cpp
#include "mainwindow.h"
#include <QApplication>
int main ( int argc, char * argv [])
{
QApplication a (argc, argv);
MainWindow w;
w.show ();
return a.exec ();
}
Mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <festival.h>
#include <QtSpeech.h>
#include <QtSpeech>
#include <QtSpeech_unx.h>
#include <QApplication>
#include <signal.h>
#include <sys / styles.h>
#include <stdlib.h>
// Giọng nói QtSpeech;
Đường dẫn QString;
MainWindow :: MainWindow (QWidget * cha):
QMainWindow (cha mẹ),
ui ( Ui mới :: MainWindow)
{
ui-> setupUi ( this );
44
ECET

Trang 45
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
QString sPath = "/" ;
dirmodel = new QFileSystemModel ( this );
dirmodel-> setRootPath (sPath);
ui-> treeView-> setModel (dirmodel);
// festival_say_text ("hello world");
// voice.say ("xin chào thế giới");
}
MainWindow :: ~ MainWindow ()
{
xóa ui;
}
void MainWindow :: on_treeView_clicked ( const QModelIndex & index)
{
QString sPath = dirmodel-> fileInfo (index) .absoluteFilePath ();
ui-> textEdit-> setText (sPath);
đường dẫn = sPath;
}
void MainWindow :: on_pushButton_clicked ()
{
Giọng nói QtSpeech;
voice.say (đường dẫn);
//voice.tell(path, & a, SLOT (thoát ()));
}
void MainWindow :: on_pushButton_2_clicked ()
{
// close = new QtSpeech;
45
ECET
Trang 46
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
// đóng-> ~ QtSpeech ();
// close-> thread ();
// close-> say (path);
// QApplication :: bỏ ();
system ( "/home/t1/./a.out&" );
}
QtSpeech_unx.cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMainWindow>
#include <QDialog>
#include <QtCore>
#include <QtGui>
#include <QString>
#include <QDebug>
#include <QtSpeech>
#include <QtCore>
#include <QtSpeech>
#include <QtSpeech_unx.h>
#include <festival.h>
#include <QPushButton>
vùng tên Ui
{
lớp MainWindow;
}
class MainWindow: public QMainWindow
46
ECET

Trang 47
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
{
Q_OBJECT
công khai :
MainWindow rõ ràng (QWidget * cha = 0);
~ MainWindow ();
khe riêng tư :
void on_treeView_clicked ( const QModelIndex & index);
void on_pushButton_clicked ();
void on_pushButton_2_clicked ();
riêng tư :
Ui :: MainWindow * ui;
QFileSystemModel * dirmodel;
QApplication * a;
QtSpeech * đóng;
}
#endif // MAINWINDOW_H
#include <QtCore>
#include <QtSpeech>
#include <QtSpeech_unx.h>
#include <festival.h>
không gian tên QtSpeech_v1 { // API v1.0
// một số định nghĩa để ném các ngoại lệ
#define Trong đó QString ( "% 1:% 2:" ) .arg (__ FILE __). arg (__ LINE__)
#define SysCall (x, e) {\
47
ECET

Trang 48
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
int ok = x; \
nếu (! được) {\
QString msg = #e; \
msg + = ":" + QString (__ FILE __); \
msg + = ":" + QString :: number (__ LINE __) + ":" + # x; \
ném e (msg); \
}\
}
// qobject cho chuỗi lời nói
bool QtSpeech_th :: init = false ;
void QtSpeech_th :: say (QString text) {
thử {
if (! init) {
int heap_size = FESTIVAL_HEAP_SIZE;
festival_initialize ( true , heap_size);
init = true ;
}
has_error = false ;
EST_String est_text (text.toUtf8 ());
SysCall (festival_say_file (est_text), QtSpeech :: LogicError);
}
bắt (QtSpeech :: LogicError e) {
has_error = true ;
err = e;
}
phát hành xong ();
}
// dữ liệu nội bộ
lớp QtSpeech :: Riêng tư {
công khai :
Riêng tư()
48
ECET
Trang 49
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
: onFinishSlot (0L) {}
Tên VoiceName;
static const QString VoiceId;
const char * onFinishSlot;
QPointer <QObject> onFinishObj;
static QPointer <QThread> speechThread;
}
QPointer <QThread> QtSpeech :: Private :: speechThread = 0L;
const QString QtSpeech :: Private :: VoiceId = QString ( "festival:% 1" );
// thực hiện
QtSpeech :: QtSpeech (QObject * cha)
: QObject (mẹ), d ( Riêng tư mới )
{
VoiceName n = {Private :: VoiceId.arg ( "english" ), "English" };
if (n.id.isEmpty ())
ném InitError (Where + "Không có giọng nói mặc định trong hệ thống" );
d-> tên = n;
}
QtSpeech :: QtSpeech (VoiceName n, QObject * cha)
: QObject (mẹ), d ( Riêng tư mới )
{
if (n.id.isEmpty ()) {
VoiceName def = {Private :: VoiceId.arg ( "english" ), "English" };
n = def;
}
if (n.id.isEmpty ())
ném InitError (Where + "Không có giọng nói mặc định trong hệ thống" );
49
ECET

Trang 50
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
d-> tên = n;
}
QtSpeech :: ~ QtSpeech ()
{
//nếu ()
xóa d;
}
const QtSpeech :: VoiceName & QtSpeech :: name () const {
return d-> tên;
}
QtSpeech :: VoiceNames QtSpeech :: giọng nói ()
{
VoiceNames vs;
VoiceName n = {Private :: VoiceId.arg ( "english" ), "English" };
so với << n;
trở lại vs;
}
void QtSpeech :: tell (QString text) const {
Tell (text, 0L, 0L);
}
void QtSpeech :: tell (QString text, QObject * obj, const char * slot) const
{
if (! d-> speechThread) {
d-> speechThread = new QThread;
d-> speechThread-> start ();
}
d-> onFinishObj = obj;
d-> onFinishSlot = khe cắm;
50
ECET

Trang 51
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
if (obj && slot)
connect ( const_cast <QtSpeech *> ( this ), SIGNAL ( finish ()), obj, slot);
QtSpeech_th * th = new QtSpeech_th;
th-> moveToThread (d-> speechThread);
connect (th, SIGNAL ( finish ()), this , SIGNAL (finish ()), Qt ::
QueuedConnection);
connect (th, SIGNAL (finish ()), th, SLOT (deleteLater ()), Qt ::
QueuedConnection);
QMetaObject :: invokeMethod (th, "say" , Qt :: QueuedConnection, Q_ARG
(QString, text));
}
void QtSpeech :: say (QString text) const
{
if (! d-> speechThread) {
d-> speechThread = new QThread;
d-> speechThread-> start ();
}
QEventLoop el;
QtSpeech_th th;
th.moveToThread (d-> speechThread);
kết nối (& th, SIGNAL (xong ()), & el, SLOT (bỏ ()), Qt :: QueuedConnection);
QMetaObject :: invokeMethod (& th, "say" , Qt :: QueuedConnection, Q_ARG
(QString, text));
el.exec ();
if (th.has_error)
ném th.err;
}
void QtSpeech :: timerEvent (QTimerEvent * te)
{
QObject :: timerEvent (te);
}
} // không gian tên QtSpeech_v1
51
ECET

Trang 52
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 10
ƯU ĐIỂM VÀ ỨNG DỤNG CỦA DỰ ÁN
9.1 ƯU ĐIỂM CỦA DỰ ÁN
• Dệt may viết thành lời nói.
• những người có thị lực để đọc sách nói.

người khiếm thị.
• Đọc sách để đọc lướt.
9. 2 HẠN CHẾ CỦA DỰ ÁN
• Không thể đào tạo giọng nói của riêng chúng tôi
• Không thể đọc tệp PDF vì khoảng trống trống
9.3 ỨNG DỤNG
• Ga đường sắt
• Công ty
• Bệnh viện
• Trung tâm mua sắm
• Trường học và Cao đẳng
CHƯƠNG 11
SNAPSHOTS CỦA DỰ ÁN
52
ECET

Trang 53
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
HÌNH 11.1 BAN RASPBERRY PI
53
ECET

Trang 54
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
HÌNH 11.2 BAN RASPBERRY PI ĐƯỢC KẾT HỢP VỚI MÀN HÌNH LCD
54
ECET

Trang 55
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
HÌNH 11.3 VĂN BẢN ĐỂ PHÁT BIỂU CỬA SỔ CHÍNH
55
ECET
Trang 56
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
HÌNH 11.4 HƯỚNG DẪN NHÀ CỦA CỬA SỔ CHÍNH
56
ECET

Trang 57
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
HÌNH 11.5 TẬP TIN VĂN BẢN TRONG DANH MỤC NHÀ
57
ECET

Trang 58
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 12
DANH SÁCH THÀNH PHẦN PHẦN CỨNG
S.NO
TÊN THÀNH PHẦN
ĐỊNH LƯỢNG
1
Loa
1
2
Cổng MSBI
1
3
Cổng USB
2
4
Màn hình LCD
1
58
ECET

Trang 59
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 13
KẾT LUẬN & PHẠM VI TƯƠNG LAI
13.1 KẾT LUẬN
Chúng tôi đã triển khai Hệ thống tổng hợp giọng nói hiệu quả có thể được cải thiện
hơn nữa trong
trong tương lai bằng cách sử dụng các Bộ xử lý tiên tiến hơn.
13.2 PHẠM VI TƯƠNG LAI
Chúng ta có thể luyện giọng nói của chính mình bằng cách sử dụng Thuật toán
tổng hợp giọng nói thay vì Máy tính
tạo ra giọng nói.
59
ECET

Trang 60
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
CHƯƠNG 14
THƯ MỤC
1. www.wikipedia.com
2. www.allaboutcircuits.com
3. www.microchip.com
4. www.howstuffworks.com
Sách tham khảo:
1. Raj Kamal - Kiến trúc vi điều khiển, lập trình, hệ thống giao diện
Thiết kế.
2. Mazidi và Mazidi - David.L.Jones.
60
ECET

Trang 61
ARM DỰA TRÊN VIỆC THỰC HIỆN VĂN BẢN ĐỂ PHÁT BIỂU (TTS)
TRONG THỜI GIAN THỰC
ECE (ES)
3. Hướng dẫn thiết kế PCB - David.L.Jones.
4. Nhúng C - Michael.J.Pont.
IEEE Papers được giới thiệu:
1. Liu Zhing-xuan, v.v. Nghiên cứu về Hệ thống Giám sát Không dây Từ xa Dựa
trên
GPRS và MCU, ICCP 2010, tr 392-394
2. Yunfang Hao, cấu trúc mạng báo hiệu GPRS nếu giao diện viện Tây An của
Bưu chính Viễn thông, 2002, 7 (1): 46-49.
3. Dai Jia, vv .. Thiết kế ứng dụng vi điều khiển C-51 Ngành công nghiệp điện tử
Báo chí, 2007
4. Zhangdui Zhong, Dịch vụ vô tuyến gói tổng hợp GPRS Bắc Kinh, Bưu chính &
Viễn thông
Báo chí, 2001.
5. Thuật ngữ Srisuresh, P..Holdrege, M IP Network Address Translator (NAT) và
Cân nhắc, RFC 2663 (1999).
6. Gleeson. B, .Lin, A,. Heinanen, J., Armitage, G., Malis A. Khuôn khổ dành cho
IP.
61
ECET

You might also like