Skip to main content
Speech synthesis

SSML

Utilize a SSML (Speech Synthesis Markup Language) para ajustar características da fala, como velocidade, pausas e pronúncia.

Visão geral

A SSML (Speech Synthesis Markup Language) é uma linguagem de marcação baseada em XML destinada à síntese de fala. Ao incorporar tags SSML ao seu texto, você controla a velocidade da fala, entonação, pausas e volume, além de adicionar música de fundo e efeitos sonoros para enriquecer a saída de áudio. Os casos de uso mais comuns incluem:
  • Audiobooks: controle pausas e a velocidade da fala com precisão, adicionando música de fundo para uma experiência auditiva imersiva.
  • Atendimento inteligente ao cliente: utilize a tag <say-as> para garantir a leitura correta de números de telefone, datas e informações similares.
  • Transmissão multilíngue: empregue a tag <phoneme> para definir pronúncias exatas de palavras estrangeiras.
  • Educação online: converta fórmulas LaTeX em fala natural por meio do recurso de leitura de fórmulas.
Ambos os recursos estão disponíveis para a família de modelos CosyVoice. Para orientações sobre a escolha do modelo, consulte Síntese de fala.

SSML

Limitações

  • Modelos: O suporte a SSML restringe-se aos modelos cosyvoice-v3.5-flash, cosyvoice-v3.5-plus, cosyvoice-v3-flash, cosyvoice-v3-plus e cosyvoice-v2.
  • Vozes: Apenas vozes clonadas e vozes predefinidas identificadas como compatíveis com SSML na Lista de vozes do CosyVoice são suportadas.
  • APIs: A funcionalidade SSML está disponível nas seguintes APIs:
    • Java SDK (versão 2.20.3 ou superior): chamadas sem streaming e com streaming unidirecional.
    • Python SDK (versão 1.23.4 ou superior): chamadas sem streaming e com streaming unidirecional.
    • WebSocket API: defina o parâmetro enable_ssml como true e envie um único evento continue-task.

Início rápido

O exemplo abaixo utiliza SSML para controlar a velocidade da fala durante a síntese. Antes de executar o código, conclua os seguintes pré-requisitos:
  1. Obter uma chave de API
  2. Instale o DashScope SDK (Python 1.23.4 ou posterior, Java 2.20.3 ou posterior). Para mais detalhes, consulte Instalar SDK.
Os modelos cosyvoice-v3.5-plus e cosyvoice-v3.5-flash estão disponíveis atualmente apenas na região de Pequim e destinam-se exclusivamente a cenários de clonagem de voz (nenhuma voz predefinida é fornecida). Antes de usar esses modelos, crie uma voz alvo seguindo as instruções em Clonagem de voz.
  • Java SDK
  • Python SDK
  • WebSocket API
import com.alibaba.dashscope.audio.ttsv2.SpeechSynthesisParam;
import com.alibaba.dashscope.audio.ttsv2.SpeechSynthesizer;
import com.alibaba.dashscope.utils.Constants;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

/**
 * SSML feature description:
 *     1. Only non-streaming calls and unidirectional streaming calls support the SSML feature
 *     2. Only cloned voices of the cosyvoice-v3-flash, cosyvoice-v3-plus, and cosyvoice-v2 models, as well as system voices marked as SSML-supported in the voice list, support the SSML feature (for example, the longanyang voice of the cosyvoice-v3-flash model)
 */
public class Main {
    private static String model = "cosyvoice-v3-flash";
    private static String voice = "longanyang";

    public static void main(String[] args) {
        // Singapore region URL. Replace WorkspaceId with your actual workspace ID. The URL varies by region.
        Constants.baseWebsocketApiUrl = "wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference";
        streamAudioDataToSpeaker();
        System.exit(0);
    }

    public static void streamAudioDataToSpeaker() {
        SpeechSynthesisParam param =
                SpeechSynthesisParam.builder()
                        // The API Keys for the Singapore and Beijing regions are different. Get an API Key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
                        // If you have not configured an environment variable, replace the following line with your Model Studio API Key: .apiKey("sk-xxx")
                        .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                        .model(model)
                        .voice(voice)
                        .build();

        SpeechSynthesizer synthesizer = new SpeechSynthesizer(param, null);
        ByteBuffer audio = null;
        try {
            // Non-streaming call, blocks until audio is returned
            // Special characters need to be escaped
            audio = synthesizer.call("<speak rate=\"2\">My speaking rate is faster than a normal person's.</speak>");
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            // Close the WebSocket connection when the task ends
            synthesizer.getDuplexApi().close(1000, "bye");
        }
        if (audio != null) {
            // Save audio data to local file "output.mp3"
            File file = new File("output.mp3");
            try (FileOutputStream fos = new FileOutputStream(file)) {
                fos.write(audio.array());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

        // The first text transmission requires establishing a WebSocket connection, so the first packet latency includes the connection setup time
        System.out.println(
                "[Metric] requestId: "
                        + synthesizer.getLastRequestId()
                        + ", first packet latency (ms): "
                        + synthesizer.getFirstPackageDelay());
    }
}

Referência de tags

A implementação SSML do Alibaba Cloud baseia-se na especificação SSML 1.0 da W3C. Nem todas as tags padrão são suportadas; o serviço implementa as tags mais comuns para cenários de produção.
  • Ao usar SSML, todo o conteúdo de texto deve estar entre as tags <speak></speak>.
  • É possível utilizar várias tags <speak> em sequência (por exemplo, <speak></speak><speak></speak>), mas o aninhamento não é suportado (por exemplo, <speak><speak></speak></speak>).
  • Caso o texto dentro de uma tag contenha caracteres especiais XML, faça o escape conforme abaixo:
    • " (aspas duplas) → &quot;
    • ' (aspas simples/apóstrofo) → &apos;
    • & (e comercial) → &amp;
    • < (sinal de menor que) → &lt;
    • > (sinal de maior que) → &gt;

<speak>: elemento raiz

  • Descrição <speak> é o elemento raiz para todo o conteúdo SSML. Todo o texto deve estar delimitado pelas tags <speak></speak>.
  • Sintaxe
 <speak>Text that requires SSML processing</speak>
  • Atributos
    AtributoTipoObrigatórioDescrição
    voiceStringNãoDefine a voz.Este atributo tem precedência sobre o parâmetro voice na solicitação da API.
    • Valores válidos: um nome de voz específico. Para mais detalhes, consulte Vozes cosyvoice-v2.
    • Exemplo:
    <speak voice="longcheng_v2">
      I am a male voice.
    </speak>
    
    rateStringNãoEspecifica a velocidade da fala. Este atributo substitui o parâmetro speech_rate da requisição da API.
    • Valores válidos: número decimal entre 0,5 e 2 (inclusivo)
    • Valor padrão: 1
      • Valores maiores que 1 aumentam a velocidade da fala
      • Valores menores que 1 diminuem a velocidade da fala
    • Exemplo:
    <speak rate="2">
      My speech rate is faster than normal.
    </speak>
    
    pitchStringNãoDefine o tom da voz. Esta configuração prevalece sobre o parâmetro pitch_rate enviado na API.
    • Valores válidos: número decimal entre 0,5 e 2 (inclusivo)
    • Valor padrão: 1
      • Valores acima de 1 elevam o tom
      • Valores abaixo de 1 reduzem o tom
    • Exemplo:
    <speak pitch="0.5">
      However, my pitch is lower than others.
    </speak>
    
    volumeStringNãoDetermina o volume. O valor definido aqui sobrescreve o parâmetro volume da chamada da API.
    • Valores válidos: inteiro entre 0 e 100 (inclusivo)
    • Valor padrão: 50
      • Valores superiores a 50 aumentam o volume
      • Valores inferiores a 50 diminuem o volume
    • Exemplo:
    <speak volume="80">
      My volume is also very high.
    </speak>
    
    effectStringNãoIndica o efeito de áudio desejado.
    • Valores válidos:
      • robot: efeito de voz robótica
      • lolita: efeito de voz lolita
      • lowpass: efeito de filtro passa-baixa
      • echo: efeito de eco
      • eq: equalizador (avançado)
      • lpfilter: filtro passa-baixa (avançado)
      • hpfilter: filtro passa-alta (avançado)
      • Os tipos eq, lpfilter e hpfilter são efeitos avançados. Utilize o parâmetro effectValue para personalizar efeitos específicos.
      • Cada tag SSML aceita apenas um efeito. Não é permitido definir múltiplos atributos effect simultaneamente.
      • A ativação de efeitos de áudio aumenta a latência da síntese.
    • Exemplo:
    <speak effect="robot">
      Do you like the robot WALL-E?
    </speak>
    
    effectValueStringNãoConfigura o comportamento específico do efeito de áudio (parâmetro effect). Aplica-se aos três tipos de efeitos avançados: eq, lpfilter e hpfilter.
    • Valores válidos:
      • eq (equalizador): o sistema suporta 8 bandas de frequência por padrão, correspondentes às seguintes frequências: ["40 Hz","100 Hz", "200 Hz", "400 Hz", "800 Hz", "1600 Hz", "4000 Hz", "12000 Hz"]. Cada banda possui largura de 1.0q. Use o parâmetro effectValue para definir o ganho de cada banda. O parâmetro consiste em uma string com 8 inteiros variando de -20 a 20, separados por espaços. O valor 0 indica que não há ajuste de ganho para aquela frequência. Exemplo: effectValue="1 1 1 1 1 1 1 1"
      • lpfilter (filtro passa-baixa): define a frequência de corte. Valores válidos: inteiro no intervalo (0, target_sample_rate/2]. Exemplo: effectValue="800".
      • hpfilter (filtro passa-alta): define a frequência de corte. Valores válidos: inteiro no intervalo (0, target_sample_rate/2]. Exemplo: effectValue="1200".
    • Exemplo:
    <speak effect="eq" effectValue="1 -20 1 1 1 1 20 1">
      Do you like the robot WALL-E?
    </speak>
    
    <speak effect="lpfilter" effectValue="1200">
      Do you like the robot WALL-E?
    </speak>
    
    <speak effect="hpfilter" effectValue="1200">
      Do you like the robot WALL-E?
    </speak>
    
    bgmStringNãoAdiciona música de fundo à fala sintetizada. O arquivo de áudio deve estar armazenado no Alibaba Cloud OSS (consulte Carregar objetos) e o bucket deve ter pelo menos acesso de leitura pública.Se a URL da música de fundo contiver caracteres especiais XML (como &, <, >), faça o escape deles.
    • Requisitos de áudio: Não há limite superior para o tamanho do arquivo de música de fundo, mas arquivos maiores demoram mais para baixar. Se a fala sintetizada for mais longa que a música de fundo, a música será repetida automaticamente em loop.
      • Taxa de amostragem: 16 kHz
      • Canais: mono
      • Formato: WAV Para converter um arquivo que não seja WAV, utilize o ffmpeg:
    ffmpeg -i input_audio -acodec pcm_s16le -ac 1 -ar 16000 output.wav
    
    • Profundidade de bits: 16 bits
    • Exemplo:
    <speak bgm="http://nls.alicdn.com/bgm/2.wav" backgroundMusicVolume="30" rate="-500" volume="40">
      <break time="2s"/>
      The old trees on the shady cliff are shrouded in mist
      <break time="700ms"/>
      The sound of rain is still in the bamboo forest
      <break time="700ms"/>
      I know that cotton contributes to the country's plan
      <break time="700ms"/>
      The scenery of Mianzhou is always pitiable
      <break time="2s"/>
    </speak>
    
    Você é responsável pelos direitos autorais de qualquer áudio carregado.
    backgroundMusicVolumeStringNãoDefine o volume da música de fundo. Utilize este atributo em conjunto com o atributo bgm.
  • Relacionamentos entre tags A tag <speak> pode conter texto e as seguintes tags filhas:
  • Mais exemplos
    • Sem atributos
<speak>
  Text that requires SSML tags
</speak>
  • Atributos combinados (separados por espaço)
<speak rate="200" pitch="-100" volume="80">
  So when put together, my voice sounds like this.
</speak>

<break>: controlar duração da pausa

  • Descrição Insere uma pausa silenciosa durante a síntese de fala para simular pausas naturais na conversa. Suporta segundos (s) e milissegundos (ms) como unidades de tempo.
  • Sintaxe
# No attributes
<break/>
# With time attribute
<break time="string"/>
  • Atributos
    Uma tag <break> sem atributos gera uma pausa de 1 segundo por padrão.
    AtributoTipoObrigatórioDescrição
    timeStringNãoEspecifica a duração da pausa, em segundos ou milissegundos (por exemplo, "2s" ou "50ms").
    • Valores válidos:
      • Em segundos (s): inteiro entre 1 e 10 (inclusivo)
      • Em milissegundos (ms): inteiro entre 50 e 10000 (inclusivo)
    • Exemplo:
    <speak>
      Please close your eyes and take a rest.<break time="500ms"/>Okay, please open your eyes.
    </speak>
    
    Quando várias tags <break> são usadas consecutivamente, a duração total da pausa é a soma de todas as durações individuais. Se o total exceder 10 segundos, apenas os primeiros 10 segundos serão aplicados.Por exemplo, no SSML a seguir, a duração acumulada das tags <break> é de 15 segundos. Como isso ultrapassa o limite de 10 segundos, a pausa real é truncada para 10 segundos:
    <speak>
          Please close your eyes and take a rest.<break time="5s"/><break time="5s"/><break time="5s"/>Okay, please open your eyes.
        </speak>
    
  • Relacionamentos entre tags <break> é um elemento de fechamento automático e não pode conter elementos filhos.

<sub>: substituir texto

  • Descrição Substitui o texto especificado por um conteúdo mais adequado para fala. Por exemplo, lê "W3C" como "World Wide Web Consortium".
  • Sintaxe
<sub alias="string"></sub>
  • Atributos
    AtributoTipoObrigatórioDescrição
    aliasStringSimDefine o texto de substituição a ser lido em voz alta.Exemplo:
     <speak>
       <sub alias="network protocol">W3C</sub>
     </speak>
    
  • Relacionamentos entre tags A tag <sub> pode conter apenas texto simples.

<phoneme>: especificar pronúncia (pinyin/fonética)

  • Descrição Oferece controle preciso sobre a pronúncia do texto. Textos em chinês suportam notação pinyin e textos em inglês suportam notação fonética CMU. Isso é útil para desambiguar caracteres polifônicos e lidar com a pronúncia de idiomas estrangeiros.
  • Sintaxe
<phoneme alphabet="string" ph="string">Text</phoneme>
  • Atributos
    AtributoTipoObrigatórioDescrição
    alphabetStringSimDefine o tipo de pronúncia: pinyin (para chinês) ou símbolos fonéticos (para inglês).Valores válidos:
    phStringSimEspecifica a notação exata de pinyin ou fonética. Regras de uso:
    • Separe o pinyin de vários caracteres com espaços. O número de entradas de pinyin deve corresponder ao número de caracteres.
    • Cada entrada de pinyin consiste na pronúncia e em um número de tom. Os números de tom variam de 1 a 5, onde 5 representa o tom neutro.
    • Exemplo:
    <speak>
      How to spell <phoneme alphabet="cmu" ph="S AY N">sin</phoneme>?
    </speak>
    
  • Relacionamentos entre tags A tag <phoneme> pode conter apenas texto simples.

<soundEvent>: inserir um som externo (toque, miado de gato, etc.)

  • Descrição Insere um arquivo de efeito sonoro (como um tom de alerta ou som ambiente) em um ponto específico da fala para enriquecer a saída de áudio.
  • Sintaxe
 <soundEvent src="URL"/>
  • Atributos
    AtributoTipoObrigatórioDescrição
    srcStringSimEspecifica a URL de um arquivo de áudio externo.O arquivo de áudio deve estar armazenado no Alibaba Cloud OSS (consulte Carregar objetos) e o bucket deve ter pelo menos acesso de leitura pública. Se a URL contiver caracteres especiais XML (como &, <, >), faça o escape deles.
    • Requisitos de áudio:
      • Taxa de amostragem: 16 kHz
      • Canais: mono
      • Formato: WAV Para converter um arquivo que não seja WAV, utilize o ffmpeg:
    ffmpeg -i input_audio -acodec pcm_s16le -ac 1 -ar 16000 output.wav
    
    • Tamanho do arquivo: máximo de 2 MB
    • Profundidade de bits: 16 bits
    • Exemplo:
    <speak>
      A horse was frightened<soundEvent src="http://nls.alicdn.com/sound-event/horse-neigh.wav"/>and people scattered to avoid it.
    </speak>
    
    Você é legalmente responsável pelos direitos autorais do áudio carregado.
  • Relacionamentos entre tags <soundEvent> é um elemento de fechamento automático e não pode conter elementos filhos.

<say-as>: defina a interpretação de texto (números, datas, números de telefone, etc.)

  • Descrição Especifica o tipo de conteúdo do texto (como números, datas ou números de telefone) para que o sistema faça a leitura conforme as regras adequadas a esse tipo.
  • Sintaxe
 <say-as interpret-as="string">Text</say-as>
  • Atributos

    Atributo

    Tipo

    Obrigatório

    Descrição

    interpret-as

    String

    Sim

    Especifica o tipo de conteúdo do texto dentro da tag.

    Valores válidos:

    • cardinal: lê como um número inteiro ou decimal padrão

    • digits: lê cada dígito individualmente (por exemplo, 123 é lido como "um dois três")

    • telephone: lê dígito por dígito no formato padrão de número de telefone

    • name: lê usando as regras padrão de pronúncia de nomes

    • address: lê usando as regras padrão de pronúncia de endereços

    • id: lê usando as regras padrão de pronúncia de identificadores (nome de conta, apelido)

    • characters: lê cada caractere do texto individualmente

    • punctuation: lê o nome de cada sinal de pontuação

    • date: lê usando as regras padrão de pronúncia de datas

    • time: lê usando as regras padrão de pronúncia de horas

    • currency: lê usando as regras padrão de pronúncia de valores monetários

    • measure: lê usando as regras padrão de pronúncia de unidades de medida

  • Intervalos suportados para cada tipo de <say-as>
    • cardinal

      Formato

      Exemplo

      Saída em inglês

      Observações

      Sequência de dígitos

      145

      one hundred forty five

      Intervalo de inteiros: inteiros positivos e negativos com até 13 dígitos, [-999999999999,999999999999].

      Intervalo decimal: sem limite específico de casas decimais, mas recomenda-se 10 ou menos.

      Sequência de dígitos começando com zero

      0145

      one hundred forty five

      Sinal de menos + sequência de dígitos

      -145

      minus hundred forty five

      Sequência de dígitos com vírgula separando a cada 3 dígitos

      60,000

      sixty thousand

      Sinal de menos + sequência de dígitos separada por vírgulas

      -208,000

      minus two hundred eight thousand

      Sequência de dígitos + ponto decimal + zero

      12.00

      twelve

      Sequência de dígitos + ponto decimal + sequência de dígitos

      12.34

      twelve point three four

      Sequência de dígitos separada por vírgulas + ponto decimal + sequência de dígitos

      1,000.1

      one thousand point one

      Sinal de menos + sequência de dígitos + ponto decimal + sequência de dígitos

      -12.34

      minus twelve point three four

      Sinal de menos + sequência de dígitos separada por vírgulas + ponto decimal + sequência de dígitos

      -1,000.1

      minus one thousand point one

      (Sequência de dígitos separada por vírgulas) + hífen + (sequência de dígitos separada por vírgulas)

      1-1,000

      one to one thousand

      Outras leituras padrão

      012.34

      twelve point three four

      Nenhuma

      1/2

      one half

      -3/4

      minus three quarters

      5.1/6

      five point one over six

      -3 1/2

      minus three and a half

      1,000.3^3

      one thousand point three to the power of three

      3e9.1

      three times ten to the power of nine point one

      23.10%

      twenty three point one percent

    • digits

      Formato

      Exemplo

      Saída em inglês

      Observações

      Sequência de dígitos

      12034

      one two zero three four

      Não há limite específico para o comprimento da sequência de dígitos, mas recomenda-se usar 20 dígitos ou menos.

      Quando as sequências de dígitos são agrupadas por espaços ou hifens, uma pausa de vírgula é inserida entre os grupos. São suportados até 5 grupos.

      Sequência de dígitos + espaço/hífen + sequência de dígitos + espaço/hífen + sequência de dígitos + espaço/hífen + sequência de dígitos

      1-23-456 7890

      one, two three, four five six, seven eight nine zero

    • telephone

      Formato

      Exemplo

      Saída em inglês

      Observações

      Sequência de dígitos

      12034

      one two oh three four

      Não há limite específico para o comprimento da sequência de dígitos, mas recomenda-se usar 20 dígitos ou menos. Quando as sequências de dígitos são agrupadas por espaços ou hifens, uma pausa de vírgula é inserida entre os grupos. São suportados até 5 grupos.

      Sequência de dígitos + espaço/hífen + sequência de dígitos + espaço/hífen + sequência de dígitos

      1-23-456 7890

      one, two three, four five six, seven eight nine oh

      Sinal de mais + sequência de dígitos + espaço/hífen + sequência de dígitos

      +43-211-0567

      plus four three, two one, oh five six seven

      Parêntese esquerdo + sequência de dígitos + parêntese direito + espaço + sequência de dígitos + espaço/hífen + sequência de dígitos

      (21) 654-3210

      (two one) six five four, three two one oh

    • address Esta tag não é suportada para texto em inglês.
    • id Para texto em inglês, esta tag funciona da mesma forma que a tag characters.
    • characters

      Formato

      Exemplo

      Saída em inglês

      Observações

      String

      *b+3$.c-0'=α

      asterisk B plus three dollar dot C dash zero apostrophe equals alpha

      Suporta caracteres chineses, letras maiúsculas e minúsculas, dígitos de 0 a 9 e alguns caracteres de largura total e meia largura.

      Os espaços na saída indicam pausas entre os caracteres, o que significa que cada caractere é lido individualmente.

      Se o texto dentro da tag contiver caracteres especiais XML, faça o escape deles.

    • punctuation Para texto em inglês, esta tag funciona da mesma forma que a tag characters.
    • date

      Formato

      Exemplo

      Saída em inglês

      Observações

      Quatro dígitos/dois dígitos ou quatro dígitos-dois dígitos

      2000/01

      two thousand, oh one

      Abrange períodos entre anos.

      1900-01

      nineteen hundred, oh one

      2001-02

      twenty oh one, oh two

      2019-20

      twenty nineteen, twenty

      1998-99

      nineteen ninety eight, ninety nine

      1999-00

      nineteen ninety nine, oh oh

      Número de quatro dígitos começando com 1 ou 2

      2000

      two thousand

      Ano com 4 dígitos.

      1900

      nineteen hundred

      1905

      nineteen oh five

      2021

      twenty one

      Dia - dia da semana (hífen)

      ou

      Dia - dia da semana

      ou

      Dia & dia da semana

      mon-wed

      monday to wednesday

      Se o texto na tag de intervalo de dias da semana contiver caracteres especiais XML, faça o escape desses caracteres.

      tue~fri

      tuesday to friday

      sat&sun

      saturday and sunday

      DD-DD MMM, YYYY

      ou

      DD~DD MMM, YYYY

      ou

      DD&DD MMM, YYYY

      19-20 Jan, 2000

      the nineteen to the twentieth of january two thousand

      DD: dia com 2 dígitos. MMM: abreviação de mês com 3 letras ou palavra completa. YYYY: ano com 4 dígitos começando com 1 ou 2.

      01 ~ 10 Jul, 2020

      the first to the tenth of july twenty

      05&06 Apr, 2009

      the fifth and the sixth of april two thousand nine

      MMM DD-DD

      ou

      MMM DD~DD

      ou

      MMM DD&DD

      Feb 01 - 03

      feburary the first to the third

      MMM: abreviação de mês com 3 letras ou palavra completa. DD: dia com 2 dígitos.

      Aug 10~20

      august the tenth to the twentieth

      Dec 11&12

      december the eleventh and the twelfth

      MMM-MMM

      ou

      MMM~MMM

      ou

      MMM&MMM

      Jan-Jun

      january to june

      MMM: abreviação de mês com 3 letras ou palavra completa.

      jul ~ dec

      july to december

      sep&oct

      september and october

      YYYY-YYYY

      ou

      YYYY~YYYY

      1990 - 2000

      nineteen ninety to two thousand

      YYYY: ano com 4 dígitos começando com 1 ou 2.

      2001~2021

      two thousand one to twenty one

      WWW DD MMM YYYY

      Sun 20 Nov 2011

      sunday the twentieth of november twenty eleven

      WWW é a abreviação de três letras ou o nome completo de um dia da semana. DD é um dia com dois dígitos. MMM é a abreviação de três letras ou o nome completo de um mês. MM é um mês com dois dígitos (ou a abreviação de três letras ou o nome completo de um mês). YYYY é um ano com quatro dígitos começando com 1 ou 2.

      WWW DD MMM

      Sun 20 Nov

      sunday the twentieth of november

      WWW MMM DD YYYY

      Sun Nov 20 2011

      sunday november the twentieth twenty eleven

      WWW MMM DD

      Sun Nov 20

      sunday november the twentieth

      WWW YYYY-MM-DD

      Sat 2010-10-01

      aturday october the first twenty ten

      WWW YYYY/MM/DD

      Sat 2010/10/01

      saturday october the first twenty ten

      WWW MM/DD/YYYY

      Sun 11/20/2011

      sunday november the twentieth twenty eleven

      MM/DD/YYYY

      11/20/2011

      november the twentieth twenty eleven

      YYYY

      1998

      nineteen ninety eight

      Outras leituras padrão

      10 Mar, 2001

      the tenth of march two thousand one

      Nenhuma

      10 Mar

      the tenth of march

      Mar 2001

      march two thousand one

      Fri. 10/Mar/2001

      friday the tenth of march two thousand one

      Mar 10th, 2001

      march the tenth two thousand one

      Mar 10

      march the tenth

      2001/03/10

      march the tenth two thousand one

      2001-03-10

      march the tenth two thousand one

      2000s

      two thousands

      2010's

      twenty tens

      1900's

      nineteen hundreds

      1990s

      nineteen nineties

    • time

      Formato

      Exemplo

      Saída em inglês

      Observações

      HH:MM AM ou PM

      09:00 AM

      nine A M

      HH: hora com 1 ou 2 dígitos. MM: minuto com 2 dígitos. AM/PM: manhã/tarde.

      09:03 PM

      nine oh three P M

      09:13 p.m.

      nine thirteen p m

      HH:MM

      21:00

      twenty one hundred

      HHMM

      100

      one oclock

      Ponto no tempo-Ponto no tempo

      8:00 am - 05:30 pm

      eight a m to five p m

      Suporta formatos e intervalos de hora comuns.

      7:05~10:15 AM

      seven oh five to ten fifteen A M

      09:00-13:00

      nine oclock to thirteen hundred

    • currency

      Formato

      Exemplo

      Saída em inglês

      Observações

      Número + identificador de moeda

      1.00 RMB

      one yuan

      Formatos de número suportados: inteiros, decimais e notação internacional separada por vírgulas.

      Identificadores de moeda suportados:

      CN¥ (yuan)

      CNY (yuan)

      RMB (yuan)

      AUD (australian dollar)

      CAD (canadian dollar)

      CHF (swiss franc)

      DKK (danish krone)

      EUR (euro)

      GBP (british pound)

      HKD (Hong Kong(China) dollar)

      JPY (japanese yen)

      NOK (norwegian krone)

      SEK (swedish krona)

      SGD (singapore dollar)

      USD (united states dollar)

      2.02 CNY

      two point zero two yuan

      1,000.23 CN¥

      one thousand point two three yuan

      1.01 SGD

      one singapore dollar and one cent

      2.01 CAD

      two canadian dollars and one cent

      3.1 HKD

      three hong kong dollars and ten cents

      1,000.00 EUR

      one thousand euros

      Identificador de moeda + número

      US$ 1.00

      one US dollar

      Formatos de número suportados: inteiros, decimais e notação internacional separada por vírgulas.

      Identificadores de moeda suportados:

      US$ (US dollar)

      CA$ (Canadian dollar)

      AU$ (Australian dollar)

      SG$ (Singapore dollar)

      HK$ (Hong Kong dollar)

      C$ (Canadian dollar)

      A$ (Australian dollar)

      $ (dollar)

      £ (pound)

      € (euro)

      CN¥ (yuan)

      CNY (yuan)

      RMB (yuan)

      AUD (australian dollar)

      CAD (canadian dollar)

      CHF (swiss franc)

      DKK (danish krone)

      EUR (euro)

      GBP (british pound)

      HKD (Hong Kong(China) dollar)

      JPY (japanese yen)

      NOK (norwegian krone)

      SEK (swedish krona)

      SGD (singapore dollar)

      USD (united states dollar)

      $0.01

      one cent

      JPY 1.01

      one japanese yen and one sen

      £1.1

      one pound and ten pence

      €2.01

      two euros and one cent

      USD 1,000

      one thousand united states dollars

      Número + classificador + identificador de moeda

      ou

      Identificador de moeda + número + Quantificador

      1.23 Tn RMB

      one point two three trillion yuan

      Formatos de classificador suportados:

      thousand

      million

      billion

      trillion

      Mil (million)

      mil (million)

      Bil (billion)

      bil (billion)

      MM (million)

      Bn (billion)

      bn (billion)

      Tn (trillion)

      tn (trillion)

      K(thousand)

      k (thousand)

      M (million)

      m (million)

      $1.2 K

      one point two thousand dollars

    • measure

      Formato

      Exemplo

      Saída em inglês

      Observações

      Número + unidade de medida

      1.0 kg

      one kilogram

      Formatos de número suportados: inteiros, decimais e notação internacional separada por vírgulas.

      Suporta abreviações comuns de unidades.

      1,234.01 km

      one thousand two hundred thirty four point zero one kilometres.

      Unidade de medida

      mm2

      square millimetre

    • A tabela a seguir mostra como os símbolos comuns são lidos com <say-as>.

      Símbolo

      Pronúncia em inglês

      !

      exclamation mark

      double quote

      #

      pound

      $

      dollar

      %

      percent

      &

      and

      left quote

      left parenthesis

      right parenthesis

      *

      asterisk

      +

      plus

      ,

      comma

      -

      dash

      .

      dot

      /

      slash

      solon

      semicolon

      <

      less than

      =

      equals

      >

      greater than

      ?

      question mark

      @

      at

      [

      left bracket

      \

      back slash

      ]

      right bracket

      ^

      caret

      _

      underscore

      `

      back quote

      {

      left brace

      vertical bar

      }

      right brace

      ~

      tilde

      exclamation mark

      left double quote

      right double qute

      left quote

      right quote

      left parenthesis

      right parenthesis

      comma

      full stop

      em dash

      colon

      semicolon

      question mark

      enumeration comma

      ellipsis

      ……

      ellipsis

      left guillemet

      right guillemet

      yuan

      greater than or equal to

      less than or equal to

      not equal

      approximately equal

      ±

      plus or minus

      ×

      times

      π

      pi

      Α

      alpha

      Β

      beta

      Γ

      gamma

      Δ

      delta

      Ε

      epsilon

      Ζ

      zeta

      Θ

      theta

      Ι

      iota

      Κ

      kappa

      lambda

      Μ

      mu

      Ν

      nu

      Ξ

      ksi

      Ο

      omicron

      pi

      Ρ

      rho

      sigma

      Τ

      tau

      Υ

      upsilon

      Φ

      phi

      Χ

      chi

      Ψ

      psi

      Ω

      omega

      α

      alpha

      β

      beta

      γ

      gamma

      δ

      delta

      ε

      epsilon

      ζ

      zeta

      η

      eta

      θ

      theta

      ι

      iota

      κ

      kappa

      λ

      lambda

      μ

      mu

      ν

      nu

      ξ

      ksi

      ο

      omicron

      π

      pi

      ρ

      rho

      σ

      sigma

      τ

      tau

      υ

      upsilon

      φ

      phi

      χ

      chi

      ψ

      psi

      ω

      omega

    • A tabela a seguir mostra como as unidades de medida comuns são lidas com <say-as>.

      Formato

      Categoria

      Exemplo em inglês

      Abreviação

      Comprimento

      nm (nanometre), μm (micrometre), mm (millimetre), cm (centimetre), m (metre), km (kilometre), ft (foot), in (inch)

      Área

      cm² (square centimetre), ㎡ (square metre), km2 (square kilometre), SqFt (square foot)

      Volume

      cm³ (cubic centimetre), m³ (cubic metre), km3 (cubic kilometre), mL (millilitre), L (millilitre), gal (gallon)

      Peso

      μg (microgram), mg (microgram), g (gram), kg (kilogram)

      Tempo

      min (minute), sec (second), ms (millisecond)

      Eletromagnetismo

      μA (microamp), mA (milliamp), Hz (hertz), kHz (kilohertz), MHz (megahertz), GHz (gigahertz), V (volt), kV (kilovolt), kWh (kilowatt hour)

      Som

      dB (decibel)

      Pressão atmosférica

      Pa (pascal), kPa (kilopascal), MPa (megapascal)

      Outras unidades comuns

      Suporta unidades além das listadas acima, como tsp (teaspoon), rpm (revolutions per minute), KB (kilobyte) e mmHg (millimetre of mercury).

  • Relacionamentos entre tags A tag <say-as> pode conter texto e <vhml/>.
  • Exemplos
    • cardinal
<speak>
  <say-as interpret-as="cardinal">12345</say-as>
</speak>
<speak>
  <say-as interpret-as="cardinal">10234</say-as>
</speak>
  • digits
<speak>
  <say-as interpret-as="digits">12345</say-as>
</speak>
<speak>
  <say-as interpret-as="digits">10234</say-as>
</speak>
  • telephone
<speak>
  <say-as interpret-as="telephone">12345</say-as>
</speak>
<speak>
  <say-as interpret-as="telephone">10234</say-as>
</speak>
  • name
<speak>
  Her former name is <say-as interpret-as="name">Zeng Xiaofan</say-as>
</speak>
  • address
<speak>
  <say-as interpret-as="address">Fulu International, Building 1, Unit 3, Room 304</say-as>
</speak>
  • id
<speak>
  <say-as interpret-as="id">myid_1998</say-as>
</speak>
  • characters
<speak>
  <say-as interpret-as="characters">Greek letters αβ</say-as>
</speak>
<speak>
  <say-as interpret-as="characters">*b+3.c$=α</say-as>
</speak>
  • punctuation
<speak>
  <say-as interpret-as="punctuation"> -./:;</say-as>
</speak>
  • date
<speak>
  <say-as interpret-as="date">1000-10-10</say-as>
</speak>
<speak>
  <say-as interpret-as="date">10-01-2020</say-as>
</speak>
  • time
<speak>
  <say-as interpret-as="time">5:00am</say-as>
</speak>
<speak>
  <say-as interpret-as="time">0500</say-as>
</speak>
  • currency
<speak>
  <say-as interpret-as="currency">13,000,000.00RMB</say-as>
</speak>
<speak>
  <say-as interpret-as="currency">$1,000.01</say-as>
</speak>
  • measure
<speak>
  <say-as interpret-as="measure">100m12cm6mm</say-as>
</speak>
<speak>
  <say-as interpret-as="measure">1,000.01kg</say-as>
</speak>
Plano de Tokens
Playground de Modelos
Inferência do Modelo
Avaliação
Compressão de Modelos
Estatísticas e Monitoramento
Suporte