8

Phần đầu của câu hỏi này bây giờ riêng của mình, ở đây: Analyzing Text for AccentsThêm Giọng to Speech hệ

Câu hỏi: Làm thế nào điểm nhấn có thể được bổ sung vào bài phát biểu được tạo ra?

Những gì tôi đã đi lên với:

Tôi không có ý dấu chỉ giọng, hoặc uốn, hoặc bất cứ điều gì đặc biệt như thế. Tôi có nghĩa là một cái gì đó giống như một giọng Anh đầy đủ, hoặc một giọng Scotland, hoặc Nga, vv

Tôi nghĩ rằng điều này có thể được thực hiện bên ngoài của ngôn ngữ là tốt. Ví dụ:: một thứ tiếng Nga có thể được tạo bằng giọng Anh, hoặc tiếng Quan Thoại có thể có giọng Nga.

Tôi nghĩ rằng quá trình cơ bản sẽ là:

  1. Phân tích văn bản
    • Hãy so sánh với cơ sở dữ liệu (hoặc một cái gì đó như thế) để xác định những gì cần một giọng, mạnh như thế nào nó nên được, vv
  2. Tạo bài phát biểu bằng ngôn ngữ nhất định
    • E asy với bộ xử lý văn bản sang giọng nói bình thường.
  3. Xác định giọng được chỉ định dựa trên văn bản được phân tích.
    • Đây là phần được đề cập.
    • Tôi nghĩ rằng một loạt các biên độ và bộ lọc sẽ hoạt động tốt nhất cho bước tiếp theo.
  4. Giọng nói và giọng nói của lưới.
    • Đây sẽ là phần dễ dàng.
    • Có thể có thể thực hiện bằng cách nhân giọng nói bằng giọng, giống như nhiều phương pháp DSP khác.

Đây thực sự là nhiều hơn một câu hỏi DSP chung, nhưng tôi muốn đưa ra một thuật toán programatic để làm điều này thay vì một ý tưởng chung.

+0

Có (ít nhất) hai câu hỏi tách rời hoàn toàn ở đây: phần về phân tích văn bản và phần về tổng hợp giọng nói. Những câu hỏi này sẽ được hỏi như các câu hỏi SO riêng biệt. –

+0

@Oli Tôi đã nghĩ về điều đó, nhưng phần phân tích gắn chặt với phần thế hệ mà tôi nghĩ họ nên ở bên nhau. – Jon

+0

Hmmm. Đầu tiên về bản chất là một vấn đề phân tích cú pháp/phân tích văn bản; thứ hai về cơ bản là một vấn đề DSP. Phạm vi có vẻ hơi quá rộng đối với câu hỏi về Stack Overflow ... –

Trả lời

2

Giọng là gì?

Dấu nhấn không phải là bộ lọc âm thanh; đó là một mô hình thực hiện âm thanh của văn bản trong một ngôn ngữ. Bạn không thể ghi âm tiếng Anh Mỹ, chạy nó thông qua "mảng biên độ và bộ lọc", và có tiếng Anh Anh bật ra. DSP hữu ích cho việc triển khai thực hiện prosody, chứ không phải giọng.

Về cơ bản (và đơn giản nhất để mô hình), một dấu bao gồm các quy tắc cho việc thực hiện ngữ âm của một chuỗi âm vị. Nhận thức về dấu trọng âm bị ảnh hưởng hơn nữa by prosody và theo đó âm vị của người nói sẽ chọn khi đọc văn bản.

hệ Speech

Quá trình tạo bài phát biểu có hai bước cơ bản:

  1. Text-to-âm vị: Chuyển đổi văn bản bằng văn bản cho một chuỗi các âm vị (cộng suprasegmentals như căng thẳng, và các thông tin điệu tính giống như ranh giới lời nói). Điều này phần nào phụ thuộc vào giọng điệu (ví dụ: đầu ra cho "phòng thí nghiệm" khác nhau giữa người nói tiếng Anh và Mỹ).

  2. Âm vị-to-speech: được đưa ra thứ tự của âm vị, tạo âm thanh theo quy tắc của phương ngữ cho việc thực hiện ngữ âm của âm vị. (Thông thường bạn sau đó kết hợp diphones và sau đó điều chỉnh âm thanh của prosody). Điều này phụ thuộc nhiều vào giọng nói, và đó là bước này truyền đạt chất lượng chính của giọng. Một âm vị cụ thể, ngay cả khi được chia sẻ giữa hai dấu trọng âm, có thể có các cách thực hiện âm thanh nổi bật khác nhau.

Thông thường những thứ này được ghép nối. Trong khi bạn có thể có trình phát âm giọng nói có dấu Anh sử dụng các cách phát âm của người Mỹ, điều đó nghe có vẻ lạ.

Tạo bài phát biểu với giọng cho

Viết một chương trình text-to-speech là một số lượng lớn công việc (đặc biệt, để thực hiện một chương trình thông thường, bạn phải ghi lại một người bản xứ nói tiếng mỗi âm kép có thể trong ngôn ngữ), vì vậy bạn nên sử dụng ngôn ngữ hiện có.

Tóm lại, nếu bạn muốn giọng Anh, hãy sử dụng công cụ chuyển văn bản tiếng Anh thành tiếng Anh cùng với công cụ phát âm giọng nói tiếng Anh của Anh.

Đối với các dấu phổ biến như tiếng Anh Mỹ và tiếng Anh, tiếng Quan thoại chuẩn, tiếng Pháp Metropolitan, v.v., sẽ có một số lựa chọn, bao gồm các mã nguồn mở mà bạn có thể sửa đổi (như bên dưới). Ví dụ: xem FreeTTSeSpeak. Đối với các điểm nhấn ít phổ biến hơn, các công cụ hiện có không may có thể không tồn tại.

Phát biểu văn bản với một giọng nước ngoài

tiếng Anh-với-một-ngoại-giọng là xã hội không phải là rất có uy tín, vì vậy hệ thống hoàn chỉnh có lẽ không tồn tại.

Một chiến lược sẽ là kết hợp công cụ chuyển văn bản thành âm vị cho giá trị gốc với công cụ phát âm thành giọng nói cho tiếng nước ngoài. Ví dụ: một người nói tiếng Nga bản xứ đã học tiếng Anh ở Hoa Kỳ sẽ sử dụng cách phát âm các từ tiếng Hoa Kỳ như phòng thí nghiệm và ánh xạ âm vị của nó lên âm vị bản địa của Nga, phát âm chúng như tiếng Nga. (Tôi tin rằng có một trang web thực hiện điều này cho tiếng Anh và tiếng Nhật, nhưng tôi không có liên kết.)

Vấn đề là kết quả quá khắc nghiệt. Một người học tiếng Anh thực sự sẽ cố gắng để nhận ra và tạo ra âm vị không tồn tại trong ngôn ngữ mẹ đẻ của mình, và cũng sẽ thay đổi việc thực hiện các âm vị bản địa của mình để ước tính cách phát âm bản địa. Kết quả phù hợp chặt chẽ với một người bản xứ của khóa học rất khác nhau, nhưng việc sử dụng âm thanh cực kỳ thuần túy ở nước ngoài nghe có vẻ vô lý (và hầu như không thể hiểu được).

Vì vậy, để tạo tiếng Mỹ Mỹ-Anh-với-một giọng nói hợp lý (ví dụ), bạn phải viết một công cụ chuyển văn bản thành âm. Bạn có thể sử dụng các công cụ văn bản tiếng Anh và tiếng Nga hiện tại của Nga như một điểm khởi đầu. Nếu bạn không sẵn sàng để tìm và ghi lại một người nói như vậy, bạn có lẽ vẫn có thể nhận được một xấp xỉ khá bằng cách sử dụng DSP để kết hợp các mẫu từ hai động cơ đó. Đối với eSpeak, nó sử dụng tổng hợp formant hơn là các mẫu được ghi lại, vì vậy có thể dễ dàng kết hợp thông tin từ nhiều ngôn ngữ hơn. Một điều khác cần lưu ý là loa nước ngoài thường xuyên thay đổi trình tự âm vị dưới ảnh hưởng bởi các phonotactics của ngôn ngữ mẹ đẻ của họ, điển hình bằng cách đơn giản hóa các cụm phụ âm, chèn các nguyên âm epenthetic, hoặc diphthongizing hoặc phá vỡ các nguyên âm.

There is some literature on this topic.

+1

Chà ... đó là rất nhiều thông tin hữu ích. Tôi không thực sự chắc chắn những gì khác để nói, nhưng đây là câu trả lời tốt nhất tôi nghĩ rằng tôi sẽ nhận được. – Jon

4

Câu hỏi này không thực sự là "lập trình" cho mỗi người: Đó là ngôn ngữ học. Lập trình tương đối dễ dàng. Đối với phân tích, điều đó sẽ thực sự khó khăn, và trong sự thật, bạn có lẽ tốt hơn khi không cho người dùng chỉ định giọng; Hay bạn đang đi cho một người đọc câu chuyện tự động?

Tuy nhiên, giọng cơ bản có thể thực hiện được với văn bản thành giọng nói hiện đại. Bạn có biết bảng chữ cái ngữ âm quốc tế không? http://en.wikipedia.org/wiki/International_Phonetic_Alphabet Về cơ bản, nó liệt kê tất cả các âm thanh mà giọng nói của con người có thể tạo ra. Một dấu chỉ sau đó chỉ là một ánh xạ (một hàm) từ bảng chữ cái đến chính nó. Ví dụ, để làm cho một giọng Mỹ âm thanh tiếng Anh cho một người Mỹ (Mặc dù không đủ để làm cho nó âm thanh tiếng Anh cho một người Anh), bạn có thể de-rhotacise tất cả các "r" âm thanh ở giữa một từ.Vì vậy, ví dụ như trill phế nang sẽ được thay thế bằng fricative uvular lồng tiếng. (Rất nhiều trường hợp góc để làm việc chỉ cho việc này).

Dài và ngắn: Thật không dễ dàng, đó có thể là lý do tại sao không ai làm điều đó. Tôi chắc rằng một vài giáo sư ngôn ngữ học của họ sẽ nói điều đó là không thể. Nhưng đó là những gì các giáo sư ngôn ngữ học làm. Nhưng về cơ bản bạn sẽ cần phải đọc một số sách giáo khoa dày về dấu trọng âm và cách phát âm để tạo ra bất kỳ sự cố nào với vấn đề này. Chúc may mắn!

+0

+1. Tôi sẽ tìm cách tiếp cận "người đọc truyện" và bạn chắc chắn sẽ cung cấp một số mẹo hay. Bạn có nghĩ rằng bạn có thể cung cấp một "bản đồ đường" của các loại? Một cái gì đó giống như mã giả? – Jon

+1

Chúa ơi không. Đây không phải là một dự án nhỏ. – DanielOfTaebl

+0

IPA là không chính xác cho mục đích này; nó nhằm mục đích là một bảng chữ cái * phiên âm * (mặc dù tên của nó). –

Các vấn đề liên quan