Phần 22. Cách hẹn giờ và tạo phản hồi bằng giọng nói

0
300

Trong 2 bài viết trước đã trình bày cách chuyển lời nói thành văn bản, sau đó trích xuất yêu cầu đặt bộ hẹn giờ từ văn bản đó. Bài viết này sẽ hướng dẫn cách đặt bộ hẹn giờ trên thiết bị IoT, đưa ra phản hồi tới người dùng bằng lời nói xác nhận về bộ hẹn giờ và thông báo khi bộ hẹn giờ kết thúc.

Những nội dung chính của bài viết gồm:

1. Văn bản chuyển thành lời nói

2. Đặt bộ hẹn giờ

3. Cách chuyển văn bản thành lời nói

1. Văn bản chuyển thành lời nói

Văn bản chuyển thành lời nói, là quá trình chuyển đổi văn bản thành âm thanh mà có chứa văn bản dưới dạng lời nói. Nguyên tắc cơ bản là chia nhỏ các từ trong văn bản thành các âm cấu tạo nên chúng (được gọi là âm vị) và ghép âm thanh lại với nhau từ các âm đó, sử dụng âm thanh được ghi sẵn hoặc âm thanh do các mô hình AI tạo ra.

Hệ thống chuyển văn bản thành lời nói thường có 3 giai đoạn:

– Phân tích văn bản

– Phân tích ngôn ngữ

– Sự hình thành dạng sóng

* Phân tích văn bản

Phân tích văn bản bao gồm việc lấy văn bản được cung cấp và chuyển thành các từ có thể được sử dụng để tạo ra lời nói. Ví dụ: với từ “Hello word” thì không cần phân tích văn bản mà có thể chuyển hai từ trên thành lời nói. Tuy nhiên, với “1234”, tùy thuộc vào ngữ cảnh có thể chuyển thành các từ “Một nghìn, hai trăm ba mươi bốn” hoặc “Một, hai, ba, bốn”. Trong câu “Tôi có 1234 quả táo”, thì nó sẽ là “Một nghìn, hai trăm ba mươi bốn”, nhưng với câu “Đứa trẻ đếm 1234” thì nó sẽ là “Một, hai, ba, bốn”.

Các từ được tạo ra không chỉ khác nhau theo ngôn ngữ, mà nơi sử dụng khác nhau cũng tạo ra các từ khác nhau. Ví dụ: trong tiếng Anh Mỹ, 120 sẽ là “One hundred twenty”, trong tiếng Anh Anh sẽ là  “One hundred and twenty”, khác nhau từ “and” sau hàng trăm.

Khi đã được xác định được các từ, chúng sẽ được gửi đi để phân tích ngôn ngữ.

* Phân tích ngôn ngữ

Việc phân tích ngôn ngữ là chia các từ thành các âm vị. Âm vị không chỉ dựa trên các chữ cái được sử dụng, mà còn dựa trên các chữ cái khác trong từ. Ví dụ, trong tiếng Anh, âm ‘a’ trong ‘car’ khác trong ‘care’. Ngôn ngữ tiếng Anh có 44 âm vị khác nhau cho 26 chữ cái trong bảng chữ cái, một số chữ cái khác nhau nhưng tạo nên cùng một âm vị.

Một khi các từ đã được chuyển đổi thành các âm vị, các âm vị này cần được thêm dữ liệu để hỗ trợ ngữ điệu, điều chỉnh âm sắc hoặc thời lượng tùy thuộc vào ngữ cảnh. Trong tiếng Anh, việc tăng cao độ từ ở cuối câu ngụ ý đó là câu hỏi.

Ví dụ: câu “Bạn có một quả táo” có ý khẳng định là: bạn có một quả táo. Nếu cao độ tăng lên ở cuối, tăng dần đến từ apple, câu trên sẽ trở thành câu hỏi “Bạn có một quả táo?”. Việc phân tích ngôn ngữ cần sử dụng dấu chấm hỏi ở cuối để quyết định tăng cao độ.

Khi đã tạo được các âm vị, bước tiếp theo là gửi chúng đi để tạo dạng sóng nhằm tạo ra âm thanh đầu ra.

* Sự hình thành dạng sóng

Hệ thống chuyển văn bản thành lời nói điện tử đầu tiên sử dụng các bản ghi âm đơn lẻ cho mỗi âm vị, dẫn đến giọng nói rất đơn điệu, âm thanh kiểu rô bốt. Việc phân tích ngôn ngữ sẽ tạo ra các âm vị, những âm vị này sẽ được tải từ cơ sở dữ liệu âm thanh và được ghép lại với nhau để tạo thành âm thanh.

Sự hình thành dạng sóng hiện đại hơn sử dụng các mô hình ML được xây dựng bằng cách sử dụng học sâu để tạo ra âm thanh tự nhiên hơn.

Một số mô hình ML này có thể được đào tạo lại sử dụng phương pháp transfer learning để có âm thanh như người thật, nghĩa là sử dụng giọng nói như một hệ thống bảo mật- điều mà các ngân hàng đang cố gắng thực hiện để những kẻ lừa đảo khi có bản ghi âm giọng nói trong vài phút của khách hàng cũng không thể mạo danh khách hàng đó.

Các mô hình ML lớn này đang được đào tạo để kết hợp cả ba bước trên thành bộ tạo giọng nói hoàn chỉnh.

2. Đặt bộ hẹn giờ

Để đặt bộ hẹn giờ, thiết bị IoT cần kết nối với điểm cuối REST đã được tạo bằng mã serverless, sau đó sử dụng số kết quả tính theo giây để đặt bộ hẹn giờ.

* Cách gọi hàm serverless để lấy thời gian hẹn giờ

Làm theo hướng dẫn dưới đây để gọi điểm cuối REST từ thiết bị IoT và đặt bộ hẹn giờ với thời gian cần thiết:

Arduino – Wio Terminal

Máy tính đơn bo – Raspberry Pi/ thiết bị IoT ảo

3. Chuyển văn bản thành lời nói

Dịch vụ giọng nói mà đã được sử dụng để chuyển lời nói thành văn bản có thể được sử dụng để chuyển đổi ngược lại từ văn bản thành giọng nói và được phát qua loa trên thiết bị IoT. Văn bản cần chuyển đổi được gửi đến dịch vụ giọng nói, cùng với loại âm thanh cần thiết (như tốc độ lấy mẫu) và dữ liệu dưới dạng nhị phân chứa âm thanh được trả về.

Yêu cầu chuyển đổi này được gửi bằng Ngôn ngữ đánh dấu tổng hợp giọng nói (Speech Synthesis Markup Language-SSML)- một ngôn ngữ đánh dấu dựa trên XML cho các ứng dụng tổng hợp giọng nói. Nó xác định không chỉ văn bản được chuyển đổi, mà còn xác định cả ngôn ngữ của văn bản, giọng nói để sử dụng, thậm chí có thể được sử dụng để xác định tốc độ, âm lượng và cao độ cho một số hoặc tất cả các từ trong văn bản.

Ví dụ: SSML xác định yêu cầu chuyển đổi văn bản “Your 3 minute 5 second time has been set” thành lời nói bằng giọng nói tiếng Anh Anh tên là en-GB-MiaNeural

<speak version='1.0' xml:lang='en-GB'>
    <voice xml:lang='en-GB' name='en-GB-MiaNeural'>
        Your 3 minute 5 second time has been set
    </voice>
</speak>

Hầu hết các hệ thống chuyển văn bản thành lời nói đều có nhiều giọng nói cho các ngôn ngữ khác nhau, với các giọng phù hợp như giọng Anh Anh với tiếng Anh và giọng Anh New Zealand với tiếng New Zealand.

* Cách chuyển văn bản thành giọng nói

Làm theo hướng dẫn tại các link dưới đây để chuyển văn bản thành giọng nói bằng thiết bị IoT:

Arduino – Wio Terminal

Máy tính đơn bo – Raspberry Pi

Máy tính đơn bo – Thiết bị ảo

Biên dịch: Bắc Đặng

Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com

0 0 Phiếu bầu
Article Rating
Subscribe
Notify of
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các bình luận