Hàm SSML

Khi trả lời câu trả lời cho Trợ lý Google, bạn có thể sử dụng một nhóm nhỏ Ngôn ngữ đánh dấu tổng hợp lời nói (SSML) trong câu trả lời của mình. Bằng cách sử dụng SSML, bạn có thể làm cho các câu trả lời trong cuộc trò chuyện trông giống như lời nói tự nhiên. Ví dụ sau đây cho thấy mã đánh dấu SSML và âm thanh tương ứng của Trợ lý Google:

Node.js

function saySSML(conv) {
  const ssml = '<speak>' +
    'Here are <say-as interpret-as="characters">SSML</say-as> samples. ' +
    'I can pause <break time="3" />. ' +
    'I can play a sound <audio src="https://www.example.com/MY_WAVE_FILE.wav">your wave file</audio>. ' +
    'I can speak in cardinals. Your position is <say-as interpret-as="cardinal">10</say-as> in line. ' +
    'Or I can speak in ordinals. You are <say-as interpret-as="ordinal">10</say-as> in line. ' +
    'Or I can even speak in digits. Your position in line is <say-as interpret-as="digits">10</say-as>. ' +
    'I can also substitute phrases, like the <sub alias="World Wide Web Consortium">W3C</sub>. ' +
    'Finally, I can speak a paragraph with two sentences. ' +
    '<p><s>This is sentence one.</s><s>This is sentence two.</s></p>' +
    '</speak>';
  conv.add(ssml);
}

JSON

{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ],
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "<speak>Here are <say-as interpret-as=\"characters\">SSML</say-as> samples. I can pause <break time=\"3\" />. I can play a sound <audio src=\"https://www.example.com/MY_WAVE_FILE.wav\">your wave file</audio>. I can speak in cardinals. Your position is <say-as interpret-as=\"cardinal\">10</say-as> in line. Or I can speak in ordinals. You are <say-as interpret-as=\"ordinal\">10</say-as> in line. Or I can even speak in digits. Your position in line is <say-as interpret-as=\"digits\">10</say-as>. I can also substitute phrases, like the <sub alias=\"World Wide Web Consortium\">W3C</sub>. Finally, I can speak a paragraph with two sentences. <p><s>This is sentence one.</s><s>This is sentence two.</s></p></speak>"
              }
            }
          ]
        }
      }
    }
  ]
}

Âm thanh

URL trong SSML

Khi xác định phản hồi SSML chỉ bao gồm một URL, ký hiệu và trong URL đó có thể gây ra sự cố do định dạng XML. Để đảm bảo URL được tham chiếu đúng cách, hãy thay thế các bản sao của & bằng &amp;.

Ngay cả khi phản hồi SSML của bạn chỉ bao gồm URL, Actions on Google vẫn yêu cầu hiển thị văn bản cho phản hồi. Trợ lý sẽ không đọc văn bản bên trong thẻ <audio>, nên bạn có thể chèn văn bản điền hoặc một đoạn mô tả ngắn vào thẻ <audio> để đáp ứng yêu cầu này. Trợ lý sẽ không đọc văn bản bên trong thẻ <audio> sau khi âm thanh phát, và đáp ứng yêu cầu của Hành động trên Google về việc cung cấp phiên bản văn bản hiển thị của SSML.

Dưới đây là ví dụ về một phản hồi SSML có vấn đề:

<speak>
  <audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
  </audio>
</speak>

Ví dụ trên không thoát & để có định dạng XML phù hợp.

Phiên bản khắc phục của cùng một phản hồi SSML sẽ có dạng như sau:

<speak>
  <audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&amp;token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
  text
  </audio>
</speak>

Hỗ trợ các phần tử SSML

Các phần sau đây mô tả các phần tử và tuỳ chọn SSML mà bạn có thể dùng trong Hành động của mình.

<speak>

Phần tử gốc của phản hồi SSML.

Để tìm hiểu thêm về phần tử speak, hãy xem thông số kỹ thuật W3.

Ví dụ:

<speak>
  my SSML content
</speak>

<break>

Một phần tử trống kiểm soát việc tạm dừng hoặc các ranh giới phổ biến khác giữa các từ. Bạn không bắt buộc phải sử dụng <break> giữa các cặp mã thông báo bất kỳ. Nếu không có thành phần này giữa các từ, thì điểm chèn quảng cáo sẽ tự động được xác định dựa trên ngữ cảnh ngôn ngữ.

Để tìm hiểu thêm về phần tử break, hãy xem thông số kỹ thuật W3.

Thuộc tính

Thuộc tính Nội dung mô tả
time

Đặt thời lượng của điểm chèn quảng cáo theo giây hoặc mili giây (ví dụ: "3 giây" hoặc "250 mili giây").

strength

Đặt độ mạnh của điểm ngắt nhân tạo của đầu ra theo các thuật ngữ tương đối. Các giá trị hợp lệ là: "x-yếu", "yếu", "trung bình", "mạnh" và "x-strong". Giá trị "none" cho biết không có ranh giới phá vỡ giả tạo nào sẽ được xuất ra. Giới hạn này có thể được dùng để ngăn chặn ngắt giả mạo mà bộ xử lý sẽ tạo ra. Các giá trị khác cho biết độ mạnh của điểm chèn quảng cáo không giảm một cách đơn điệu (về mặt khái niệm là tăng) giữa các mã thông báo. Những ranh giới rõ ràng hơn thường đi kèm với các khoảng tạm dừng.

Ví dụ:

Ví dụ sau đây cho biết cách sử dụng phần tử <break> để tạm dừng giữa các bước:

<speak>
  Step 1, take a deep breath. <break time="200ms"/>
  Step 2, exhale.
  Step 3, take a deep breath again. <break strength="weak"/>
  Step 4, exhale.
</speak>

<say‑as>

Phần tử này cho phép bạn cho biết thông tin về loại cấu trúc văn bản có trong phần tử. Hàm này cũng giúp chỉ định mức độ chi tiết để hiển thị văn bản bên trong.

Phần tử <say‑as> có thuộc tính interpret-as bắt buộc, giúp xác định cách giá trị được đọc. Bạn có thể sử dụng các thuộc tính không bắt buộc formatdetail tuỳ thuộc vào giá trị interpret-as cụ thể.

Ví dụ

Thuộc tính interpret-as hỗ trợ các giá trị sau:

  • currency

    Ví dụ sau đây được nói là "bốn mươi hai đô la và một xu". Nếu bạn bỏ qua thuộc tính ngôn ngữ thì thuộc tính này sẽ sử dụng ngôn ngữ hiện tại.

    <speak>
      <say-as interpret-as='currency' language='en-US'>$42.01</say-as>
    </speak>
        
  • telephone

    Xem nội dung mô tả interpret-as='telephone' trong ghi chú W3C SSML 1.0 giá trị thuộc tính giả làm.

    Ví dụ sau đây được nói là "một tám không hai không hai một hai một hai". Nếu thuộc tính "google:style" bị bỏ qua, thuộc tính này sẽ được đọc là chữ O.

    Thuộc tính "google:style='zero-as-zero'" hiện chỉ hoạt động ở các ngôn ngữ tiếng Anh.

          <speak>
            <say-as interpret-as='telephone' google:style='zero-as-zero'>1800-202-1212</say-as>
          </speak>
        
  • verbatim hoặc spell-out

    Ví dụ sau đây được giải thích theo từng chữ cái:

    <speak>
      <say-as interpret-as="verbatim">abcdefg</say-as>
    </speak>
        
  • date

    Thuộc tính format là một chuỗi mã ký tự của trường ngày. Các mã ký tự trường được hỗ trợ trong format lần lượt là {y, m, d} cho năm, tháng và ngày (trong tháng). Nếu mã trường xuất hiện một lần cho năm, tháng, hoặc ngày thì số chữ số cần có tương ứng là 4, 2 và 2. Nếu mã trường được lặp lại thì số chữ số dự kiến là số lần lặp lại mã. Các trường trong văn bản ngày có thể được phân tách bằng dấu chấm câu và/hoặc dấu cách.

    Thuộc tính detail kiểm soát dạng đọc của ngày. Đối với detail='1', chỉ bắt buộc phải có các trường ngày và một trong các trường tháng hoặc năm, mặc dù cả hai trường đều có thể được cung cấp. Đây là trường mặc định khi giá trị của trường nhỏ hơn cả 3 trường. Dạng nói là "{ordinal ngày} của {month}, {year}".

    Ví dụ sau được nói là "Ngày 10 của tháng 9, 1960":

    <speak>
      <say-as interpret-as="date" format="yyyymmdd" detail="1">
        1960-09-10
      </say-as>
    </speak>
        

    Ví dụ sau đây được nói là "Ngày 10 của tháng 9":

    <speak>
      <say-as interpret-as="date" format="dm">10-9</say-as>
    </speak>
        

    Đối với detail='2', các trường ngày, tháng và năm là bắt buộc. Đây là giá trị mặc định khi cung cấp cả 3 trường. Hình thức nói là "{month} {ngày thứ hai}, {năm}".

    Ví dụ sau được đọc là "ngày 10 tháng 9, tháng 19 năm 2000":

    <speak>
      <say-as interpret-as="date" format="dmy" detail="2">
        10-9-1960
      </say-as>
    </speak>
        
  • characters

    Ví dụ sau được đọc là "C A N":

    <speak>
      <say-as interpret-as="characters">can</say-as>
    </speak>
        
  • cardinal

    Ví dụ sau đây được nói là "Mười hai nghìn ba trăm bốn mươi lăm" (đối với tiếng Anh Mỹ) hoặc "Mười hai nghìn ba trăm bốn mươi lăm (đối với tiếng Anh Anh)":

    <speak>
      <say-as interpret-as="cardinal">12345</say-as>
    </speak>
        
  • ordinal

    Ví dụ sau được nói là "Đầu tiên":

    <speak>
      <say-as interpret-as="ordinal">1</say-as>
    </speak>
        
  • fraction

    Ví dụ sau đây được nói là "năm lẻ ba":

    <speak>
      <say-as interpret-as="fraction">5+1/2</say-as>
    </speak>
        
  • expletive hoặc bleep

    Ví dụ sau đây xuất hiện dưới dạng tiếng bíp, như thể đã được kiểm duyệt:

    <speak>
      <say-as interpret-as="expletive">censor this</say-as>
    </speak>
        
  • unit

    Chuyển đổi đơn vị thành số ít hoặc số nhiều tuỳ thuộc vào số. Ví dụ sau đây được nói là "10 bộ":

    <speak>
      <say-as interpret-as="unit">10 foot</say-as>
    </speak>
        
  • time

    Ví dụ sau đây được nói là "Hai ba mươi chiều":

    <speak>
      <say-as interpret-as="time" format="hms12">2:30pm</say-as>
    </speak>
        

    Thuộc tính format là một chuỗi mã ký tự của trường thời gian. Mã ký tự trường được hỗ trợ trong format lần lượt là {h,m, s, Z, 12, 24} cho giờ, phút (trong giờ), giây (của phút), múi giờ, thời gian 12 giờ và thời gian 24 giờ. Nếu mã trường xuất hiện một lần cho giờ, phút hoặc giây thì số chữ số cần có tương ứng là 1, 2 và 2. Nếu mã trường được lặp lại thì số chữ số dự kiến là số lần lặp lại mã. Các trường trong văn bản thời gian có thể được phân tách bằng dấu chấm câu và/hoặc dấu cách. Nếu giờ, phút hoặc giây không được chỉ định trong định dạng hoặc không có chữ số nào phù hợp, thì trường này được xử lý là giá trị bằng 0. format mặc định là "hms12".

    Thuộc tính detail kiểm soát việc dạng nói của thời gian là thời gian 12 giờ hay thời gian 24 giờ. Dạng nói là thời gian 24 giờ nếu detail='1' hoặc nếu detail bị bỏ qua và định dạng của thời gian là thời gian 24 giờ. Dạng nói là thời gian 12 giờ nếu detail='2' hoặc nếu detail bị bỏ qua và định dạng của thời gian là thời gian 12 giờ.

Để tìm hiểu thêm về phần tử say-as, hãy xem thông số kỹ thuật W3.

<audio>

Hỗ trợ việc chèn các tệp âm thanh đã ghi và chèn các định dạng âm thanh khác cùng với giọng nói đầu ra được tổng hợp.

Thuộc tính

Thuộc tính Bắt buộc Mặc định Giá trị
src đồng ý không áp dụng URI tham chiếu đến nguồn nội dung nghe nhìn âm thanh. Giao thức được hỗ trợ là https.
clipBegin no 0 Một TimeDesignation là độ lệch từ điểm bắt đầu phát của nguồn âm thanh. Nếu giá trị này lớn hơn hoặc bằng thời lượng thực tế của nguồn âm thanh thì sẽ không có âm thanh nào được chèn vào.
clipEnd no vô cực Một TimeDesignation là độ lệch từ điểm bắt đầu đến điểm kết thúc phát của nguồn âm thanh. Nếu thời lượng thực tế của nguồn âm thanh nhỏ hơn giá trị này, thì quá trình phát sẽ kết thúc tại thời điểm đó. Nếu clipBegin lớn hơn hoặc bằng clipEnd thì không có âm thanh nào được chèn.
speed no 100% Tỷ lệ tốc độ phát đầu ra so với tốc độ đầu vào thông thường được biểu thị dưới dạng phần trăm. Định dạng là Số thực dương, theo sau là %. Phạm vi hiện được hỗ trợ là [50% (chậm - tốc độ một nửa), 200% (tốc độ nhanh - gấp đôi)]. Các giá trị nằm ngoài phạm vi đó có thể (hoặc không) được điều chỉnh để nằm trong phạm vi đó.
repeatCount no 1 hoặc 10 nếu bạn đặt repeatDur Số thực xác định số lần chèn âm thanh (sau khi cắt, nếu có, theo clipBegin và/hoặc clipEnd). Việc lặp lại phân số không được hỗ trợ, vì vậy, giá trị này sẽ được làm tròn đến số nguyên gần nhất. 0 không phải là giá trị hợp lệ nên được coi là chưa chỉ định và có giá trị mặc định trong trường hợp đó.
repeatDur no vô cực TimeDesignation là giới hạn về thời lượng của âm thanh được chèn sau khi nguồn được xử lý cho các thuộc tính clipBegin, clipEnd, repeatCountspeed (thay vì thời lượng phát thông thường). Nếu thời lượng của âm thanh đã xử lý nhỏ hơn giá trị này thì quá trình phát sẽ kết thúc tại thời điểm đó.
soundLevel no +0dB Điều chỉnh mức âm thanh theo soundLeveldecibel. Phạm vi tối đa là +/-40dB nhưng phạm vi thực tế có thể kém hiệu quả hơn và chất lượng đầu ra có thể không mang lại kết quả tốt trên toàn bộ phạm vi.

Dưới đây là các chế độ cài đặt hiện được hỗ trợ cho âm thanh:

  • Định dạng: MP3 (MPEG v2)
    • 24 nghìn mẫu mỗi giây
    • 24K ~ 96K bit mỗi giây, tốc độ cố định
  • Định dạng: Opus in Ogg
    • 24K mẫu mỗi giây (băng tần siêu rộng)
    • 24K – 96K bit mỗi giây, tốc độ cố định
  • Định dạng (không dùng nữa): WAV (RIFF)
    • PCM 16 bit có chữ ký, endian nhỏ
    • 24 nghìn mẫu mỗi giây
  • Đối với tất cả định dạng:
    • Bạn nên dùng một kênh, nhưng có thể sử dụng âm thanh nổi.
    • Thời lượng tối đa 240 giây. Nếu bạn muốn phát âm thanh với thời lượng dài hơn, hãy cân nhắc triển khai phản hồi nội dung đa phương tiện.
    • Giới hạn kích thước tệp 5 megabyte.
    • URL nguồn phải sử dụng giao thức HTTPS.
    • Tác nhân người dùng của chúng tôi khi tìm nạp âm thanh là "Google-speech-Actions".

Nội dung của phần tử <audio> là không bắt buộc và được dùng nếu không thể phát tệp âm thanh hoặc nếu thiết bị đầu ra không hỗ trợ âm thanh. Nội dung có thể bao gồm một phần tử <desc>, trong trường hợp này, nội dung văn bản của phần tử đó được dùng để hiển thị. Để biết thêm thông tin, hãy xem phần Bản ghi âm trong Danh sách kiểm tra cho câu trả lời.

URL src cũng phải là URL https (Google Cloud Storage có thể lưu trữ tệp âm thanh của bạn trên URL https).

Để tìm hiểu thêm về phản hồi của nội dung nghe nhìn, hãy xem mục phản hồi của nội dung nghe nhìn trong hướng dẫn Câu trả lời.

Để tìm hiểu thêm về phần tử audio, hãy xem thông số kỹ thuật W3.

Ví dụ:

<speak>
  <audio src="cat_purr_close.ogg">
    <desc>a cat purring</desc>
    PURR (sound didn't load)
  </audio>
</speak>

<p>,<s>

Các thành phần của câu và đoạn.

Để tìm hiểu thêm về các phần tử ps, hãy xem thông số kỹ thuật của W3.

Ví dụ:

<p><s>This is sentence one.</s><s>This is sentence two.</s></p>

Các phương pháp hay nhất

  • Dùng thẻ <s>...</s> để gói câu đầy đủ, đặc biệt nếu các thẻ đó chứa các thành phần SSML thay đổi âm điệu (tức là <audio>, < break>, <emphasis>, <par>, <prosody>, <say-as>, <seq> và <sub>).
  • Nếu mục đích ngắt lời nói đủ dài để bạn có thể nghe được, hãy sử dụng thẻ <s>...</s> và đặt ngắt đó giữa các câu.

<sub>

Cho biết rằng văn bản trong giá trị thuộc tính bí danh sẽ thay thế văn bản được chứa để phát âm.

Bạn cũng có thể dùng phần tử sub để tạo cách phát âm đơn giản của một từ khó đọc. Ví dụ cuối cùng bên dưới minh hoạ trường hợp sử dụng này bằng tiếng Nhật.

Để tìm hiểu thêm về phần tử sub, hãy xem thông số kỹ thuật W3.

Ví dụ

<sub alias="World Wide Web Consortium">W3C</sub>
<sub alias="にっぽんばし">日本橋</sub>

<mark>

Một phần tử trống đặt điểm đánh dấu vào văn bản hoặc trình tự thẻ. Bạn có thể dùng phương thức này để tham chiếu một vị trí cụ thể trong trình tự hoặc chèn một điểm đánh dấu vào luồng đầu ra cho thông báo không đồng bộ.

Để tìm hiểu thêm về phần tử mark, hãy xem thông số kỹ thuật W3.

Ví dụ:

<speak>
Go from <mark name="here"/> here, to <mark name="there"/> there!
</speak>

<prosody>

Dùng để tuỳ chỉnh cao độ, tốc độ nói và âm lượng văn bản có trong phần tử. Hiện tại, chúng tôi hỗ trợ các thuộc tính rate, pitchvolume.

Bạn có thể đặt các thuộc tính ratevolume theo thông số kỹ thuật W3. Có 3 cách để thiết lập giá trị của thuộc tính pitch:

Thuộc tính Nội dung mô tả
name

Mã nhận dạng chuỗi của từng dấu.

Lựa chọn Nội dung mô tả
Họ hàng Hãy chỉ định một giá trị tương đối (ví dụ: "thấp", "trung bình", "cao", v.v.), trong đó "trung bình" là độ cao mặc định.
Nửa tông Tăng hoặc giảm cao độ theo nửa âm "N" bằng cách sử dụng lần lượt "+N" hoặc "-N". Lưu ý rằng "+/-" và "st" là bắt buộc.
Phần trăm Tăng hoặc giảm cao độ thêm "N" phần trăm bằng cách sử dụng tương ứng "+N%" hoặc "-N%". Lưu ý là "%" là bắt buộc nhưng "+/-" là tuỳ chọn.

Để tìm hiểu thêm về phần tử prosody, hãy xem thông số kỹ thuật W3.

Ví dụ:

Ví dụ sau đây sử dụng phần tử <prosody> để nói chậm ở mức 2 nửa âm so với bình thường:

<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>

<emphasis>

Dùng để thêm hoặc xoá điểm nhấn khỏi văn bản có trong phần tử đó. Phần tử <emphasis> sửa đổi giọng nói tương tự như <prosody>, nhưng không cần phải đặt từng thuộc tính giọng nói.

Phần tử này hỗ trợ thuộc tính "level" không bắt buộc có các giá trị hợp lệ sau đây:

  • strong
  • moderate
  • none
  • reduced

Để tìm hiểu thêm về phần tử emphasis, hãy xem thông số kỹ thuật W3.

Ví dụ:

Ví dụ sau đây sử dụng phần tử <emphasis> để tạo thông báo:

<emphasis level="moderate">This is an important announcement</emphasis>

<par>

Một vùng chứa nội dung đa phương tiện song song cho phép bạn phát nhiều thành phần nội dung đa phương tiện cùng một lúc. Nội dung duy nhất được phép là tập hợp một hoặc nhiều phần tử <par>, <seq><media>. Thứ tự của các phần tử <media> là không quan trọng.

Trừ phi phần tử con chỉ định thời gian bắt đầu khác, thời gian bắt đầu ngầm định của phần tử này sẽ giống như thời gian bắt đầu của vùng chứa <par>. Nếu một phần tử con có giá trị chênh lệch cho thuộc tính begin hoặc end, thì độ lệch của phần tử sẽ tương ứng với thời gian bắt đầu của vùng chứa <par>. Đối với phần tử <par> gốc, thuộc tính bắt đầu bị bỏ qua và thời gian bắt đầu là khi quá trình tổng hợp giọng nói SSML bắt đầu tạo dữ liệu đầu ra cho phần tử <par> gốc (tức là thời gian hiệu quả là "không").

Ví dụ:

<speak>
  <par>
    <media xml:id="question" begin="0.5s">
      <speak>Who invented the Internet?</speak>
    </media>
    <media xml:id="answer" begin="question.end+2.0s">
      <speak>The Internet was invented by cats.</speak>
    </media>
    <media begin="answer.end-0.2s" soundLevel="-6dB">
      <audio
        src="https://actions.google.com/.../cartoon_boing.ogg"/>
    </media>
    <media repeatCount="3" soundLevel="+2.28dB"
      fadeInDur="2s" fadeOutDur="0.2s">
      <audio
        src="https://actions.google.com/.../cat_purr_close.ogg"/>
    </media>
  </par>
</speak>

<seq>

Vùng chứa nội dung nghe nhìn tuần tự cho phép bạn phát lần lượt các thành phần nội dung đa phương tiện. Nội dung duy nhất được phép là tập hợp một hoặc nhiều phần tử <seq>, <par><media>. Thứ tự của các phần tử nội dung đa phương tiện là thứ tự kết xuất các phần tử đó.

Bạn có thể đặt thuộc tính beginend của các phần tử con thành giá trị chênh lệch (xem phần Thông số kỹ thuật về thời gian dưới đây). Các giá trị bù trừ của các phần tử con đó sẽ tương ứng với phần cuối của phần tử trước đó trong trình tự hoặc tương ứng với phần đầu của phần tử đầu tiên trong trình tự, so với phần đầu của vùng chứa <seq> của phần tử đó.

Ví dụ:

<speak>
  <seq>
    <media begin="0.5s">
      <speak>Who invented the Internet?</speak>
    </media>
    <media begin="2.0s">
      <speak>The Internet was invented by cats.</speak>
    </media>
    <media soundLevel="-6dB">
      <audio
        src="https://actions.google.com/.../cartoon_boing.ogg"/>
    </media>
    <media repeatCount="3" soundLevel="+2.28dB"
      fadeInDur="2s" fadeOutDur="0.2s">
      <audio
        src="https://actions.google.com/.../cat_purr_close.ogg"/>
    </media>
  </seq>
</speak>

<media>

Đại diện cho một lớp nội dung nghe nhìn trong phần tử <par> hoặc <seq>. Nội dung được phép của phần tử <media> là phần tử SSML <speak> hoặc <audio>. Bảng sau đây mô tả các thuộc tính hợp lệ cho phần tử <media>.

Thuộc tính

Thuộc tính Bắt buộc Mặc định Giá trị
xml:id no không có giá trị Giá trị nhận dạng XML duy nhất cho phần tử này. Không hỗ trợ các thực thể đã mã hoá. Các giá trị nhận dạng được phép khớp với biểu thức chính quy "([-_#]|\p{L}|\p{D})+". Xem XML-ID để biết thêm thông tin.
bắt đầu no 0 Thời gian bắt đầu cho vùng chứa nội dung nghe nhìn này. Sẽ bỏ qua nếu đây là phần tử vùng chứa nội dung đa phương tiện gốc (được coi là phần tử mặc định là "0"). Xem phần Quy cách thời gian bên dưới để biết các giá trị chuỗi hợp lệ.
kết thúc no không có giá trị Thông số kỹ thuật cho thời gian kết thúc cho vùng chứa nội dung nghe nhìn này. Xem phần Quy cách thời gian bên dưới để biết các giá trị chuỗi hợp lệ.
repeatCount no 1 Số thực xác định số lần chèn nội dung nghe nhìn. Chúng tôi không hỗ trợ lặp lại phân số, vì vậy giá trị sẽ được làm tròn thành số nguyên gần nhất. 0 không phải là giá trị hợp lệ nên được coi là chưa chỉ định và có giá trị mặc định trong trường hợp đó.
repeatDur no không có giá trị TimeDesignation là giới hạn về thời lượng của nội dung nghe nhìn được chèn. Nếu thời lượng của nội dung nghe nhìn nhỏ hơn giá trị này, thì quá trình phát sẽ kết thúc tại thời điểm đó.
soundLevel no +0dB Điều chỉnh mức âm thanh của âm thanh theo soundLevel đexiben. Phạm vi tối đa là +/-40dB nhưng phạm vi thực tế có thể kém hiệu quả hơn và chất lượng đầu ra có thể không mang lại kết quả tốt trên toàn bộ phạm vi.
fadeInDur no 0 giây Một TimeDesignation (Thiết kế thời gian) mà nội dung nghe nhìn sẽ dần chuyển từ chế độ im lặng đến soundLevel được chỉ định tuỳ ý. Nếu thời lượng của nội dung nghe nhìn nhỏ hơn giá trị này, thì độ mờ dần sẽ dừng khi phát xong và mức âm thanh sẽ không đạt được mức âm thanh đã chỉ định.
fadeOutDur no 0 giây Một TimeDesignation mà theo đó nội dung nghe nhìn sẽ mờ dần khỏi soundLevel được chỉ định tuỳ chọn cho đến khi im lặng. Nếu thời lượng của nội dung nghe nhìn nhỏ hơn giá trị này thì mức âm thanh sẽ được đặt thành giá trị thấp hơn để đảm bảo đạt được sự im lặng khi kết thúc phát.

Quy cách về thời gian

Thông số kỹ thuật thời gian, dùng cho giá trị của thuộc tính "begin" và "end" của các phần tử <media> cũng như vùng chứa nội dung nghe nhìn (các phần tử <par><seq>), có thể là một giá trị chênh lệch (ví dụ: +2.5s) hoặc một giá trị đồng bộ hoá (ví dụ: foo_id.end-250ms).

  • Giá trị chênh lệch – Giá trị chênh lệch thời gian là một Giá trị đếm thời gian SMIL cho phép các giá trị khớp với biểu thức chính quy: "\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    Chuỗi chữ số đầu tiên là phần nguyên của số thập phân và chuỗi chữ số thứ hai là phần phân số thập phân. Ký hiệu mặc định (tức là "(+|-)?") là "+". Các giá trị đơn vị tương ứng với giờ, phút, giây và mili giây. Mặc định cho đơn vị là "s" (giây).

  • Giá trị cơ sở đồng bộ hoá – Giá trị cơ sở đồng bộ hoá là một giá trị cơ sở đồng bộ hoá SMIL cho phép các giá trị khớp với biểu thức chính quy: "([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    Các chữ số và đơn vị được diễn giải giống như giá trị chênh lệch.

Trình mô phỏng TTS

Bảng điều khiển Actions bao gồm một trình mô phỏng TTS mà bạn có thể sử dụng để kiểm thử SSML với bất kỳ phần tử nào ở trên. Bạn có thể tìm thấy trình mô phỏng TTS trên bảng điều khiển trong phần Trình mô phỏng > Âm thanh. Nhập văn bản và SSML vào trình mô phỏng rồi nhấp vào Update and Listen (Cập nhật và nghe) để nghe dữ liệu đầu ra của TTS.

Bạn cũng có thể nhấp vào nút tải xuống để lưu tệp .mp3 của đầu ra TTS.