Chuyển đổi văn bản thành giọng nói sẽ giúp bạn tạo ra nội dung linh hoạt hơn, dễ tiếp cận hơn. Bạn có thể mua thiết bị ghi âm và dành hàng giờ để ghi âm và chỉnh sửa từng bài tường thuật, nhưng nếu bạn muốn thu về lợi nhuận chỉ trong vài phút và với chi phí chỉ vài xu cho mỗi bài đăng, hãy xem cách sử dụng AWS. Bài viết này sẽ trình bày cách sử dụng Amazon Polly để tường thuật nội dung của bạn.
Chuỗi bài gồm 2 phần này trình bày 3 dự án, hướng dẫn bạn cách sử dụng AWS (Dịch vụ web Amazon) để chuyển đổi văn bản thành giọng nói. Dự án đầu tiên sẽ sử dụng chuyển văn bản thành giọng nói để biến một bài đăng trên blog hoặc nội dung văn bản sang tệp âm thanh .mp3, cung cấp thêm tùy chọn cho người khiếm thị và mắc hội chứng khó đọc trên Website của bạn.
Trong bài viết tiếp theo, chúng tôi sẽ quay ngược hành trình, từ lời nói chuyển thể thành văn bản và xem xét tính chính xác của các bản phiên âm này bằng cách gửi các mẫu khác nhau thông qua bản dịch khứ hồi.
Để làm theo được bài hướng dẫn này, bạn sẽ cần một tài khoản AWS có đăng ký thu phí, mặc dù bản miễn phí vẫn làm việc tốt có các tài nguyên cơ bản nhưng giới hạn một phần nào đó. Các ví dụ sẽ tập trung vào việc sử dụng bảng điều khiển AWS, đồng thời sẽ trình bày AWS CLI (Giao diện dòng lệnh), đòi hỏi kiến thức dòng lệnh cơ bản.
Vì sao bạn cần chuyển đổi văn bản thành giọng nói
Hầu hết thông tin trên Internet là dựa trên định dạng văn bản. Văn bản rất nhẹ (1 byte/chữ cái), được hỗ trợ rộng rãi, dễ hiểu và phổ cập từ rất lâu trước đó như Internet, một phương tiện truyền thông trực tuyến mặc định. Gửi đi những thông tin văn bản viết tay đã xuất hiện trừ trước khi có Internet: điện báo bằng văn bản qua cáp dây từ hàng trăm năm trước, viết thư tay bằng văn bản đã xuất hiện trong nhiều thế kỷ trước. Truyền giọng nói qua radio và điện thoại cũng có trước Internet.
Nhưng 2 hình thức này không phải cùng một phương tiện nền tảng mà là văn bản trực tuyến. Điều này trong hầu hết các trường hợp là một điều tốt. Khẳng định một lần nữa, văn bản rất nhẹ và dễ hiểu so với âm thanh. Tuy nhiên, việc chuyển đổi văn bản thành giọng nói sẽ cải thiện khả năng truy cập trên nhiều ứng dụng.
Luôn luôn có thể chuyển đổi giữa âm thanh và văn bản, bạn có thể đọc một bài phát biểu, gốc là văn bản hoặc phiên âm một bài giảng bằng miệng. Thật vậy, nếu chúng ta nghĩ lại về bức điện tín, các nhân viên vận hành được đào tạo để chuyển tin nhắn mã Morse thành lời nói.
Trong ví dụ, sẽ rất tốn công sức để chuyển thể từ lời nói sang viết hoặc ngược lại, ngay cả khi đã được đào tạo chuyên nghiệp và có thiết bị chuyên dụng. Nhưng, với nhiều dịch vụ đám mây khác nhau, chúng tôi có thể tự động hóa các quy trình này để cho phép chuyển đổi giữa các hình thức trong tích tắc mà không cần bất kỳ nỗ lực nào của con người, giúp giải quyết được tất cả các trường hợp.
Lợi ích rõ ràng nhất của việc thực hiện các tùy chọn chuyển văn bản thành giọng nói và ngược lại là khả năng tiếp cận. Người dùng khiếm thị hoặc mắc chứng khó đọc sẽ được hưởng lợi từ phiên bản tường thuật của bài viết, trong khi một người khiếm thính có thể trở thành thành viên của khán giả podcasting của bạn bằng cách đọc bản dịch của chương trình.
Công cụ chuyển đổi văn bản thành giọng nói tối ưu và tiết kiệm nhất
Giả sử bạn muốn thêm bản tường thuật của mỗi bài đăng vào blog. Bạn có thể mua một micro và đầu tư hàng giờ để ghi âm và chỉnh sửa các bản thu âm bằng giọng nói. Điều này sẽ mang lại trải nghiệm người nghe vượt trội, nhưng nếu bạn muốn thu về lợi nhuận chỉ trong vài phút và chỉ tốn vài xu cho mỗi bài đăng, hãy xem xét sử dụng AWS. Nếu bạn là kiểu người thường xuyên cập nhật và làm mới nội dung cũ, phương pháp này cũng giúp bài trình bày âm thanh được cập nhật mà không tốn nhiều công sức.
Chúng tôi sẽ bắt đầu bằng việc chuyển văn bản thành giọng nói với Amazon Polly. Để dễ dàng khám phá, AWS cung cấp giao diện đồ họa người dùng thông qua bảng điều khiển trực tuyến. Sau khi đăng nhập vào tài khoản AWS, hãy sử dụng menu “Dịch vụ“ để tìm kiếm” Amazon Polly”, hoặc truy cập tại đây.
Công cụ chuyển đổi văn bản thành giọng nói Amazon Polly
Bạn có thể sử dụng bảng điều khiển Amazon Polly để đọc 3.000 ký tự (~ 500 từ) và nhận bản âm thanh trực tuyến hoặc tải xuống ngay lập tức. Nếu bạn cần đọc tới 100.000 ký tự (~ 16.600 từ), tùy chọn duy nhất của bạn là AWS sẽ lưu kết quả trong S3 sau khi xử lý xong, có thể mất vài phút.
Tại thời điểm viết, Amazon Polly không hỗ trợ đầu vào, với hơn 100.000 ký tự có thể sẽ phải xuất hóa đơn. Còn nếu bạn muốn chuyển đổi một văn bản dài hơn như một cuốn sách, chắc chắn bạn sẽ phải trả phí cho từng đoạn và tự ghép các tệp âm thanh.
“Tính hóa đơn dựa trên ký tự” là một trong những dịch vụ của công cụ phát thanh này. Cụ thể, điều đó có nghĩa là các thẻ SSML không phải là ký tự có thể xuất hóa đơn, mà chúng ta sẽ đề cập sau.
Trong năm đầu tiên sử dụng Amazon Polly, bạn có thể chuyển đổi miễn phí 5 triệu ký tự thành âm thanh mỗi tháng, quá đủ để chạy các mẫu ví dụ trong bài viết này và thực hiện thí nghiệm của riêng bạn.
Ngoài ra, Amazon Polly có giá $4/ triệu ký tự có thể xuất hóa đơn tại thời điểm viết, có nghĩa là việc chuyển đổi một cuốn tiểu thuyết có độ dài tiêu chuẩn sẽ có giá khoảng $2.
Bảng điều khiển cũng cho phép bạn thay đổi ngôn ngữ, khu vực và giọng nói của người đọc. Mặc dù trong bài viết này chỉ đề cập ví dụ bằng tiếng Anh, nhưng AWS hỗ trợ 21 ngôn ngữ và 29 cặp ngôn ngữ khác nhau. Trong khi hầu hết các khu vực chỉ có một hoặc hai giọng nói, những tiếng phổ biến như tiếng Anh Mỹ có một số tùy chọn trung lập.
Amazon Polly thuật lại văn bản vô cùng rõ ràng, dù thực hiện bởi robot nhưng khá dễ nghe.
Tôi thường thích sử dụng giọng nói tiếng Anh-Anh hay còn gọi là “Brian”. Đối với đôi tai gốc Mỹ, giọng Anh xuất hiện một số câu trong lời nói của người máy và mang lại trải nghiệm nghe mượt mà hơn.
Nó tốt hơn đáng kể so với trình đọc tích hợp mà MacOS sử dụng, và chất lượng có thể sánh ngang với các trợ lý giọng nói ảo như Siri và Alexa.
Sử dụng Ngôn ngữ viết SSML
Nếu muốn kiểm soát hoàn toàn kết quả bài phát biểu, bạn có thể dành thời gian để gắn thẻ đầu vào của mình bằng SSML. SSML (Ngôn ngữ đánh dấu lời nói tổng hợp) là ngôn ngữ được tiêu chuẩn hóa để thể hiện các tín hiệu bằng lời trong văn bản.
Giống như HTML, XML và các ngôn ngữ đánh dấu khác, nó sử dụng các thẻ mở và đóng. Amazon Polly hỗ trợ đầu vào SSML và các thẻ không bao gồm “các ký tự xuất hóa đơn”. Alexa cũng sử dụng SSML cho các phản hồi được lập trình sẵn, vì vậy đây là ngôn ngữ đáng để biết đến.
Thẻ nền tảng <speak>
chứa mọi thứ bạn muốn đọc. Giống như HTML, sử dụng thẻ <p>
để phân chia các đoạn văn, dẫn đến việc ngắt nghỉ đáng kể trong bài nói. Ngắt nghỉ nhỏ hơn bằng dấu chấm câu và bạn luôn có tùy chọn chèn ngắt nghỉ tối đa 10 giây với thẻ <break>
.
SSML cung cấp thẻ <say-as>
, một thẻ rất linh hoạt hỗ trợ mọi thứ, từ phát âm số điện thoại đến kiểm duyệt các tìm kiếm bằng cách sử dụng đối số mang-tính-giải-thích. Xem xét các tùy chọn từ thẻ này với mẫu sau.
<speak>
Call 5551230987 by 11'00" PM to get tips on writing clean JavaScript.<break time="1s"/>
Call <say-as interpret-as="telephone">5551230987</say-as> by 11'00" PM to get tips on writing clean <say-as interpret-as="expletive">JavaScript</say-as>
Tính linh hoạt cao hơn với thẻ <prosody>, cung cấp cho bạn quyền kiểm soát tốc độ, cao độ và âm lượng của lời nói. Thật không may, tại thời điểm viết Polly thẻ <voice> không được hỗ trợ, với Alexa có thể sử dụng để nói bằng nhiều giọng nói chuẩn, nhưng không hỗ trợ thẻ <lang> cho phép giọng nói trong ngôn ngữ này có thể phát âm chính xác bằng ngôn ngữ khác. Trong ví dụ này, <lang> sửa cách phát âm của thẻ “tag” từ tiếng Mỹ sang tiếng Đức.
<speak>
Guten tag, where is the airport?<break time=”1s“/>
<lang xml:lang=”de-DE“>Guten tag</lang>, where is the airport>
</speak>
Cuối cùng, nếu bạn muốn tùy chỉnh phát âm trong một ngôn ngữ, Amazon Polly hỗ trợ thẻ <phoneme>.
“Cái tên mới nhất, Kiely, được đánh vần rất khác so với cách phát âm. Sử dụng bảng chữ cái x-sampa, tôi có thể chọn được kiểu phát âm chuẩn nhất.”
<speak>
Philip Kiely<break time=”1s“/>
Philip <phoneme alphabet=”x-sampa“ ph=”ˈkaI.li“>Kiely</phoneme>
</speak>
Nếu bạn muốn chỉ định cách phát âm tùy chỉnh nhất quán, mở rộng từ viết tắt mà không cần gắn thẻ từng trường hợp bằng thẻ âm vị, hoặc bạn đang sử dụng văn bản thuần thay vì SSML, Amazon Polly hỗ trợ từ vựng phát âm tùy chỉnh. Bạn có thể áp dụng tối đa 5 thẻ lexicon với tối đa 4.000 ký tự cho mỗi ngôn ngữ trong một bài nói tường thuật, mặc dù với số lexicon lớn hơn đồng thời làm tăng thời gian xử lý.
Như đã nói ở trước, tôi muốn đảm bảo rằng Amazon Polly phát âm tên tôi một cách chính xác, nhưng lần này tôi muốn làm như vậy mà không sử dụng SSML. Tôi đã viết lexicon như sau đây:
<?xml version=”1.0″ encoding=”UTF-8″?>
<lexicon version=”1.0“
xmlns=”http://www.w3.org/2005/01/pronunciation-lexicon“
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“
xsi:schemaLocation=”http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd“
alphabet=”x-sampa“
xml:lang=”en-US“>
<lexeme><grapheme>Kiely</grapheme><alias>ˈkaIli</alias></lexeme>
</lexicon>
Thẻ tiêu đề <?xml?> và thẻ <lexicon> hầu như không đổi giữa các từ vựng, mặc dù thẻ <lexicon> hỗ trợ 2 đối số quan trọng. Bảng chữ cái đầu tiên cho phép bạn chọn giữa x-sampa và ipa, 2 bảng chữ cái phát âm chuẩn. Tôi thích chọn x-sampa vì nó sử dụng các ký tự ASCII tiêu chuẩn, vì vậy tôi không gặp phải các vấn đề mã hóa. Đối số xml: lang cho phép chỉ định ngôn ngữ và khu vực. Một lexicon chỉ có thể được sử dụng trong một giọng ngôn ngữ và khu vực được chọn.
Bản thân lexicon là một chuỗi các thẻ <lexeme>. Mỗi thẻ đó chứa một thẻ <grapheme> bên trong, gồm văn bản gốc và thẻ <alias>, mô tả những gì bạn muốn nói. Thẻ alias không chỉ có chức năng phát âm, bạn có thể sử dụng chúng để mở rộng các từ viết tắt (“Jr” nghĩa là “Junior” hoặc thay từ “Bruce Wayne” bằng “Batman”). Một lexicon có thể có nhiều thẻ từ vựng vì nó có giới hạn 4.000 ký tự.
Bức ảnh trên là phần văn bản thuần đã bị phát âm sai và đã được áp dụng lexicon. Sử dụng menu “Customize Pronunciation” (phát âm tùy chỉnh) để chọn ra 5 lexicon đã được tải lên từ tab điều hướng bên trái “Lexicons”. Nghe kỹ các bài phát biểu để biết tên có được phát âm chính xác.
Giờ chúng ta có toàn quyền kiểm soát các bài nói, tiếp theo hãy xem xét cách để lưu lại chúng từ ứng dụng này.
Lưu và tải tệp từ S3
Nếu muốn sử dụng lại văn bản nói trong ứng dụng của mình, nên chọn “Synthesize to S3” (Tổng hợp sang S3) trong bảng điều khiển Amazon Polly. Trong ví dụ này, tôi đang sử dụng giọng “Brian” (Anh-Anh) để thực hiện một bài đọc đến đáng ngạc nhiên về bản sô-nát thứ XXIX của Shakespeare. Chúng tôi bắt đầu bằng cách sao chép câu thơ dưới dạng văn bản thuần túy và chọn “Synthesize to S3”, hiển thị như sau.
Các tệp nén S3 có tên độc nhất trên toàn cầu và bạn có thể nhập bất kỳ tệp nén S3 nào bạn sở hữu hoặc được cấp quyền thích hợp. Hãy chắc chắn rằng tệp cho phép công khai nội dung của nó, vì điều đó sẽ được yêu cầu trong một bước ở phía sau.
Bạn cũng nên đặt tiền tố quan trọng S3, đó là một chuỗi sẽ giúp bạn xác định đầu ra tệp. Sau khi nhấp vào Synthesis và chờ một chút để xử lý, chúng ta điều hướng đến tệp S3 đã tổng hợp thành bài nói.
Mũi tên cho vào phần tích dấu vào tệp nén mà chúng ta vừa tạo ra. Chọn vào tệp bạn cần để chuyển đến trang tiếp theo.
Theo mũi tên, chọn “Make Public” để tập tin có thể truy cập được với bất kỳ ai có liên kết. Cuộn chuột xuống, nhấp vào sao chép đường dẫn và gán chúng trong ứng dụng của bạn.
Chẳng hạn, bạn có thể tải một bài thơ. Với nhiều ứng dụng, bạn có thể muốn chuyển URL đến thẻ HTML <audio> để cho phép phát lại trên web.
Chúng ta đã đề cập đến mọi thành phần cần thiết để chuyển đổi văn bản thành giọng nói trên AWS. Tiếp theo, chuyển sự chú ý sang một giao diện tiên tiến hơn có thể cung cấp tiềm năng tự động hóa và tiết kiệm khá nhiều thời gian cho bạn.
Công cụ chuyển đổi văn bản thành giọng nói AWS CLI
Quay lại bài viết giả thuyết. Quy trình đơn giản nhất sẽ là lấy phiên bản viết cuối cùng của mỗi bài viết, sao chép vào bảng điều khiển, nhấp vào nút “Synthesize to S3”, và nhúng một liên kết tải xuống vào tệp kết quả .mp3 trong blog. Thành thật mà nói, đây là một quy trình khá tốt, đó là chính xác những gì tôi đang làm với website cá nhân của mình. Tuy nhiên, AWS cung cấp một tùy chọn khác: AWS CLI.
Đảm bảo rằng bạn đã cài đặt và định cấu hình AWS CLI một cách thích hợp. Bắt đầu bằng cách nhập thẻ aws polly help để đảm bảo rằng Polly có sẵn và phải đọc danh sách các lệnh được hỗ trợ sẵn bên trong.
Nếu bạn gặp sự cố, xem tài liệu sau đây.
Để thực hiện chuyển đổi từ dòng lệnh, trước tiên tôi đã sao chép bài thơ từ trước chuyển thành tệp định dạng .txt. Sau đó tôi đã chạy lệnh đầu cuối (MacOS / Linux):
aws polly synthesize-speech \
–output-format mp3 \
–voice-id Joanna \
–text “`cat sonnetxxix.txt`” \
poem.mp3
Trong vài giây, tệp kết quả .mp3 đã được tải xuống máy của tôi, sẵn sàng để đưa vào CMS hoặc ứng dụng khác. Lưu ý các ký tự đặc biệt xung quanh đối số –text, sẽ chuyển cả nội dung của tệp thay vì chỉ tên tệp.
Cuối cùng, đối với các ứng dụng nâng cao hơn, Amazon Polly có SDK cho 9 ngôn ngữ / nền tảng. Với các ví dụ trong bài viết này, SDK không đến mức cần thiết, nhưng chính xác là những gì bạn muốn để tự động hóa các cuộc gọi Amazon Polly, đặc biệt là để đáp ứng với hành vi của người dùng.
Kết luận
Chuyển đổi văn bản thành giọng nói có thể giúp bạn tạo ra nội dung linh hoạt hơn, dễ tiếp cận hơn. Bắt đầu từ bảng điều khiển Amazon Polly, chúng tôi có thể chuyển đổi tới 100.000 ký tự tính phí thành văn bản thuần hoặc SSML, đặt tệp kết quả .mp3 thành công khai và sử dụng tệp đó trong các ứng dụng khác. Chúng tôi có thể sử dụng AWS CLI để tự động hóa và truy cập thuận tiện hơn.
Nguồn: www.smashingmagazine.com
Hãy theo dõi bài viết thứ hai của loạt bài này, chúng tôi sẽ chuyển đổi phương tiện theo hướng ngược lại, từ lời nói thành văn bản, và xem xét lợi ích và thách thức gồm những gì. Nó được xây dựng dựa trên các công nghệ đã được giới thiệu trên Amazon Transcribe.