Balabolka (texto a voz)

Balabolka

Balabolka es un programa de texto a voz (Text-To-Speech, TTS). Todas las voces de equipo instaladas en su sistema están disponibles para Balabolka. Se pueden abrir todos los documentos de texto sin formato en el sistema para su lectura y edición a través del menú "Archivo | Abrir". Para crear un documento nuevo, simplemente seleccione "Nuevo" en el menú "Archivo".

La voz puede controlarse usando los botones estándar reproducir-pausa-parar, que se encuentran en la barra de herramientas cerca de la parte superior de Balabolka. EL programa puede leer el contenido del portapapeles, ver el texto de los documentos, personalizar los colores de fuente y fondo y controlar la lectura desde la bandeja del sistema o mediante las teclas rápidas globales.

Tipos de archivo compatibles: AZW, AZW3, CHM, DjVu (DjVu+OCR), DOC, DOCX, EML, EPUB, FB2 (FB2.ZIP, FBZ), FB3, HTML, LIT, MOBI, ODS, ODT, PDB, PDF, PRC, RTF, TCR, WPD, XLS, XLSX. Se puede utilizar la interfaz IFilter para archivos con extensiones desconocidas.

El texto en pantalla se puede guardar como archivo WAV, MP3, MP4, OGG o WMA seleccionando "Archivo | Guardar archivo de audio" o "Archivo | Dividir y convertir a audio" en el menú "Archivo".

Balabolka puede guardar el texto sincronizado en archivos LRC externos o en etiquetas dentro de los archivos de audio MP3. Cuando un archivo de audio se reproduce en un equipo con un reproductor o en reproductores de audio digitales modernos, el texto se muestra en sincronía (de la misma forma que las letras de canciones).

El programa puede usar distintas versiones de Microsoft Speech API (SAPI) y Microsoft Speech Platform. Permite modificar parámetros de una voz, entre los que se incluyen tono y velocidad.

El usuario puede aplicar una lista de reemplazos especial para mejorar la calidad de articulación vocal. Esta característica es útil cuando desea cambiar el deletreo de algunas palabras o separar en sílabas. Balabolka usa dos clases de listas de sustitución:

  • Las reglas para la corrección de pronunciación utilizan la sintaxis de las expresiones regulares y pueden guardarse en archivos con extensión *.rex;
  • archivos con extensión *.dic; este formato es popular en Europa Oriental; la sintaxis de las reglas es simple, por lo que el archivo puede contener miles de reglas.

Los archivos para corrección de la pronunciación se guardan en la carpeta Documentos\Balabolka (o Mis documentos\Balabolka en Windows XP). Si se hace uso de algún diccionario, durante la lectura el programa resalta la oración o el párrafo completos; de lo contrario, se resalta la palabra actual.

Nota. En la versión portable, los archivos para corrección de la pronunciación se ubican en la subcarpeta Dictionaries.

* Balabolka es una palabra rusa, puede traducirse como "charlatán".

WWW: balabolka.site

Correo electrónico: crossa@list.ru

© 2006-2019 Ilya Morozov


Voces

La Interfaz de Programación de Aplicaciones de Voz (Speech Application Programming Interface, SAPI) fue un desarrollo de Microsoft para permitir la utilización de síntesis de voz dentro de aplicaciones para Windows. Hay dos versiones principales de SAPI (SAPI 4 y SAPI 5), incompatibles entre sí.

SAPI 4 (Microsoft Speech API 4.0)

Todas las voces para SAPI 4 se han vuelto obsoletas; ya no se recomienda instalarlas. Utilice en su lugar las versiones de los motores de voz renovadas.

SAPI 5 (Microsoft Speech API 5.x)

UkrVox - voz gratuita en ucraniano creada por Yaroslav Kozak (Lviv, Ucrania):

  • UkrVox Igor

Ekho - motor de TTS gratuito (admite cantonés, mandarín y hakka zhaoano):

  • Echo (en chino)

Para obtener mejor calidad de voz, puede comprar voces de Acapela Group, Cepstral o IVONA. Son la nueva generación de motores TTS que emplean grandes bases de datos de habla, con lo que la calidad de las voces es excelente.

Voces comerciales de alta calidad:

  • Acapela Group (demo)
  • Alfanum (demo)
  • Cepstral (demo)
  • IVONA (demo)
  • Nuance/Cerence (demo)
  • ReadSpeaker (demo)

Microsoft Speech Platform

Microsoft Speech Platform permite a los desarrolladores construir e implementar aplicaciones de texto a voz. Consta de un Tiempo de Ejecución e idiomas para el tiempo de ejecución (motores para reconocimiento de voz y texto a voz). Hay idiomas del tiempo de ejecución separados para reconocimiento de voz y síntesis de voz. La versión de los idiomas del tiempo de ejecución debe coincidir con la versión de la plataforma que instaló.

Para instalar Microsoft Speech Platform, utilice los siguientes pasos:

  1. Descargue e instale el Tiempo de ejecución de Speech Platform
    (el archivo 'x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi').
  2. Descargue e instale idiomas del tiempo de ejecución para usar con Speech Platform
    (archivos con nombres que empiezan por 'MSSpeech_TTS_').

Microsoft Speech Platform (versión 11.0) proporciona compatibilidad con 26 idiomas para síntesis de voz. Se pueden usar etiquetas XML tanto para SAPI 5 como para Speech Platform.


Línea de comandos

Balabolka acepta parámetros a través de línea de comandos:

balabolka.exe [-opciones] [nombre_de_archivo] [archivo_de_audio] [voz]

El parámetro voz se debe definir de la siguiente manera:

nombre_de_voz [rVelocidad] [pTono]

nombre_de_archivo
abrir archivo

-c
leer el portapapeles en voz alta

-c nombre_de_voz
elegir la voz y leer el portapapeles en voz alta

-m
ejecutar minimizado

-r nombre_de_archivo
abrir archivo y leerlo en voz alta desde el principio

-r nombre_de_archivo nombre_de_voz
abrir archivo, elegir voz y leer en voz alta desde el principio

-s nombre_de_archivo archivo_de_audio
abrir archivo y leer el texto a un archivo de audio (WAV, MP3, MP4, OGG o WMA)

-s nombre_de_archivo archivo_de_audio nombre_de_voz
abrir archivo, elegir voz y leer texto a un archivo de audio

-q
salir tras terminar de leer

El nombre de la voz se puede definir únicamente con una palabra; por ejemplo: Antonio. El programa elegirá el nombre correcto desde la lista de voces (SAPI 5 y SAPI 4).

Algunas opciones se pueden establecer a la vez:

-rm nombre_de_archivo
ejecutar minimizado y leer el archivo especificado

-rq nombre_de_archivo
leer el archivo especificado y salir tras terminar de leer

Por ejemplo:

balabolka.exe libro.txt

balabolka.exe libro.txt "Cepstral Alejandra"

balabolka.exe -rmq libro.txt

balabolka.exe -sq "c:\mis libros\libro.txt" "c:\mis archivos\libro.wav"

balabolka.exe -r "c:\texto\libro.txt" Antonio r180 p85

balabolka.exe -c "VW Violeta"

Si no es necesario definir el nombre de un archivo de texto sino una línea de texto, las opciones deben contener un modificador especial:

-n [línea_de_texto]
este parámetro significa que la línea de comandos contiene una línea de texto en vez de un nombre de archivo

Por ejemplo:

balabolka.exe -n "Ejemplo de texto."

balabolka.exe -rn "El programa leerá este texto." Isabel

balabolka.exe -snq "Este texto se guardará en un archivo de audio." "c:\mis archivos\libro.mp3"


Revisión ortográfica

Balabolka implementa el motor de revisión ortográfica Common Speller API (CSAPI) para revisar la ortografía. La CSAPI está diseñada para su uso con todas las aplicaciones de Microsoft que incluyen revisión ortográfica. CSAPI la proporcionan actualmente muchos proveedores, Microsoft Office 97/2000 y muchas otras aplicaciones. El motor CSAPI no se incluye como parte del paquete de instalación de Balabolka, pero si tiene instalado Microsoft Office, Balabolka detectará automáticamente la presencia de CSAPI y lo empleará.

En la ventana de edición de los escritos, puede utilizar el menú del Revisor ortográfico. Hace clic con el botón derecho sobre una palabra resaltada y se muestra un menú emergente, permitiéndole elegir entre una lista de sugerencias para la ortografía correcta de la palabra. O elija Agregar palabra al diccionario para agregar la palabra al diccionario del usuario. Si en el diccionario no hay sugerencias sobre la ortografía correcta de la palabra mal escrita, en el menú emergente no se listarán sugerencias.

También es posible comprobar el texto utilizando el cuadro de diálogo Corrección ortográfica (haga clic en el elemento de menú "Texto | Revisión ortográfica"). A continuación va la descripción de los botones del cuadro de diálogo Corrección ortográfica:

  • Cambiar - reemplaza la palabra actual por la palabra correcta tomada desde el campo "Sugerencias".
  • Cambiar todo - reemplaza todas las repeticiones de la palabra seleccionada por la palabra correcta tomada desde el campo "Sugerencias".
  • Omitir - saltea la palabra actual sin modificarla y va a la palabra mal escrita siguiente.
  • Omitir todo - saltea todas las repeticiones de la palabra actual sin modificarla y va a la palabra mal escrita siguiente. Esta palabra se tratará como bien escrita durante toda la sesión actual de Balabolka.
  • Agregar - agrega la palabra actual al diccionario del usuario.

Un "Diccionario de usuario" es un archivo con un conjunto de palabras en forma textual, tiene la extensión *.dic. El propósito principal del diccionario de usuario es agregar palabras personalizadas para la revisión ortográfica. Microsoft Office 97/2000 mantienen el diccionario de usuario aquí: c:\Program Files\Common Files\Microsoft Shared\Proof\custom.dic. Los nombres de las carpetas Program Files y Common Files podrían aparecer o estar realmente traducidos según la versión de Windows que utilice.

Balabolka permite definir dos idiomas para la revisión ortográfica (casilla de verificación Segundo idioma). En este caso el cuadro de diálogo Corrección ortográfica se deshabilita; sólo puede usar el menú del Corrector ortográfico.

Balabolka puede utilizar Hunspell (hunspell.github.io). Hunspell es el corrector ortográfico predeterminado de OpenOffice.org y Mozilla Firefox.

Se pueden descargar diccionarios de revisión ortográfica para Windows en el sitio web de Balabolka.

La aplicación permite utilizar el corrector ortográfico integrado en el sistema operativo. La Spell Checking API (API de revisión ortográfica) está disponible a partir de Windows 8.


Buscar y reemplazar texto

El programa permite buscar texto en el documento actual y reemplazarlo por texto distinto. Se admite la mayoría de códigos especiales de Microsoft Word para caracteres no imprimibles:

^p
Marca de párrafo
^t
Tabulación
^nnn
Carácter ASCII (donde nnn es el código del carácter)
^0 nnn
Carácter ANSI (donde 0 es cero y nnn el código del carácter)
^U nnnnn
Carácter Unicode (donde nnnnn es el código del carácter)
^+
Guión largo ( — )
^=
Guión corto ( – )
^^
Corchete
^s
Espacio de no separación
^?
Cualquier carácter (sólo en el cuadro Buscar)
^#
Cualquier dígito (sólo en el cuadro Buscar)
^$
Cualquier letra (sólo en el cuadro Buscar)
^c
Contenidos del Portapapeles de Microsoft Windows (sólo en el cuadro Reemplazar por)
^&
Contenidos del cuadro Buscar (sólo en el cuadro Reemplazar por)

Estos códigos especiales distinguen entre mayúsculas y minúsculas.


Preguntas más frecuentes

Pregunta

Recibo el mensaje de error "OLE error 80045042". ¿Qué significa?

Respuesta

Este error significa: "El analizador de XML falló por mala sintaxis". Debe verificar la sintaxis de las etiquetas XML dentro del texto. O alguna parte del texto se parece al inicio de una etiqueta XML, lo cual está confundiendo a SAPI. Si no desea utilizar etiquetas XML, borre los símbolos "<" y ">" del texto (o reemplácelos por las palabras "menor que" y "mayor que").

Pregunta

¿Dónde puedo conseguir SAPI 4?

Respuesta

Para usar voces SAPI 4, descargue e instale el archivo redistribuible Microsoft Speech API (824 kB). Asimismo, puede descargar e instalar el Panel de Control de Voz de Microsoft (840 kB); el Panel de Control de Voz añadirá un icono a su Panel de control para que pueda listar los motores de texto a voz compatibles instalados en su sistema y personalizar su configuración.

Pregunta

¿Dónde consigo SAPI 5?

Respuesta

Windows XP (y versiones posteriores) viene con SAPI 5.

Pregunta

¿Cómo sé qué voces para texto a voz se han instalado en el equipo?

Respuesta

Puede ver todas las voces disponibles en el equipo yendo a Panel de control -> Voz -> Propiedades de voz -> Texto a voz -> Selección de voz.

Pregunta

¿Cómo hago una instalación de Balabolka silenciosa?

Respuesta

Para instalar Balabolka en modo silencioso sin diálogos, puede usar una instalación silenciosa. La instalación silenciosa está disponible usando el conmutador de línea de comandos -silent.

Pregunta

Abrí un archivo DjVu, pero el programa no muestra ningún texto. ¿Qué hice mal?

Respuesta

El formato DjVu se diseñó para almacenar documentos escaneados. Un archivo DjVu contiene imágenes de páginas para libros, revistas, etc. Asimismo, DjVu puede contener una capa de texto resultante de OCR.

Balabolka sólo puede extraer datos de las capas de texto de DjVu. Si dicha capa no está disponible, la única manera de obtener texto es utilizar un sistema de reconocimiento de texto (por ejemplo, FineReader).

Pregunta

Mi equipo tiene dos tarjetas de sonido. ¿Cómo puedo elegir un dispositivo de audio para la reproducción de texto a voz?

Respuesta

Puede seleccionar Voz en el Panel de control de Windows y pulsar el botón Salida de audio en el cuadro de diálogo Propiedades de voz. Asimismo, Balabolka tiene el elemento de menú "Opciones | Salida de audio".

Pregunta

Mi equipo ejecuta una versión de Windows de 64 bits. He instalado el paquete de tiempo de ejecución de 64 bits para Microsoft Speech Platform y las voces en español. Empero, la lista de voces sigue vacía. ¿Dónde está el problema?

Respuesta

Balabolka es una aplicación de 32 bits. Tiene que instalar el paquete de tiempo de ejecución de 32 bits para Microsoft Speech Platform también.

Pregunta

La voz dice "espacio" cada vez que el texto contiene un espacio de no separación (ALT+0160). ¿Cómo lo arreglo?

Respuesta

El programa puede reemplazar automáticamente los espacios de no separación por espacios habituales mientras se lee. Elija el elemento del menú principal "Opciones | Parámetros", en la ventana "Parámetros" (pestaña "Lectura"), verifique la casilla Ignorar caracteres mientras se lee. Añada el espacio de no separación a la lista de símbolos a ignorar: pulse ALT y escriba "0160" en el teclado numérico.

Pregunta

¿Cómo borro los guiones del principio de los párrafos?

Respuesta

Debe usar el elemento del menú principal "Editar | Reemplazar". Escriba ^p— en el cuadro Buscar, y ^p en el cuadro Reemplazar por. Puede encontrar más información acerca de los códigos especiales aquí.

Pregunta

¿Qué es Google Text-To-Speech?

Respuesta

En el Traductor de Google puede encontrar un botón "Escuchar" que convierte texto a voz. Tras pulsar este botón, los navegadores comienzan a descargar un archivo MP3. El servicio admite la conversión a voz de textos cuya longitud no sea mayor a 100 símbolos. Balabolka permite dividir textos grandes en partes pequeñas, crear un archivo de audio para cada parte y combinarlas (se admiten los formatos WAV, MP3 y OGG).

Pregunta

Uso las voces eSpeak para convertir subtítulos a archivos de audio, pero el archivo de audio resultante contiene voz sin pausas. ¿Cuál es el problema?

Respuesta

Recomiendo encarecidamente no utilizar eSpeak para la conversión de subtítulos. Estas voces no son compatibles con la etiqueta XML "silence"; las versiones viejas de algunas otras voces tenían el mismo problema. Se recomienda utilizar las últimas versiones de software comercial (Cepstral, CereProc, IVONA, etc.).

Pregunta

El modo en que Balabolka extrae texto de los archivos PDF no me convence. ¿Puedo utilizar otra forma para el procesamiento de PDF?

Respuesta

El proceso de extracción de texto desde archivos PDF es bastante complicado, ya que los archivos PDF no contienen texto plano. Puede utilizar una utilidad externa por línea de comandos para la extracción de texto: por ejemplo, el programa pdftotext.exe del proyecto Xpdf. Copie pdftotext.exe en la subcarpeta "utils" de la carpeta de Balabolka, elija el elemento del menú principal "Opciones | Importar texto", la pestaña "Importación de texto personalizada", y pulse el botón "Añadir". Defina el comando para usar pdftotext.exe:

%BFolder%\utils\pdftotext.exe -q -nopgbrk -enc UTF-8 %Input% %Output%

Defina el nombre del convertidor (por ejemplo "Convertidor Xpdf"), la extensión del archivo ("PDF") y la codificación de salida ("UTF-8"). Después de activar la opción Usarlo para este tipo de archivo en lugar del método de extracción por defecto, el programa podrá usar la utilidad externa para la extracción de texto desde archivos PDF.

Pregunta

¿Qué es el Lector Spritz?

Respuesta

Spritz es una nueva tecnología para lectura veloz. Permite alcanzar velocidades de lectura desde 100 a 1000 palabras por minuto. La parte que suele llevar más tiempo al leer reside principalmente en el movimiento real de los ojos. Spritz posiciona las palabras en lugares de la pantalla adonde pueda reconocerlas sin mover los ojos.

Pregunta

Windows 10 tiene, según la(s) variante(s) del paquete de idioma español instalada(s), las voces nuevas Microsoft Laura Mobile, Microsoft Pablo Mobile y Microsoft Raul Mobile, pero no están disponibles en software de texto a voz. ¿Es posible desbloquear las voces nuevas?

Respuesta

Por defecto, el uso de voces Microsoft mobile por parte de software de texto a voz mediante SAPI 5 está bloqueado. Puede desbloquearlo con una simple personalización en el registro. Descargue el fichero, extraiga el archivo para su versión e idioma del sistema operativo ("mobile_x86.reg" para 32 bits y "mobile_x64.reg" para 64 bits), haga clic con el botón secundario del mouse en el nombre del archivo y elija el elemento del menú contextual "Combinar". La voz Microsoft mobile aparecerá en la lista de voces disponibles en Balabolka.

Pregunta

Algunos documentos contienen URL largas. ¿Cómo se hace para que Balabolka lea una dirección web de manera corta?

Respuesta

Se puede resolver el problema utilizando el diccionario de corrección de pronunciación. Añada al archivo REX esta regla:

((http|ftp|https)://)?(www\.)?([-a-zA-Z0-9@:%._\+~#\=]{2,256}\.[a-z]{2,6}\b)([-a-zA-Z0-9@:%_\+.~#?&//\=]*)=$4

La expresión regular reemplazará la dirección web por el nombre de dominio ("example.com").

Pregunta

¿Puedo utilizar la primera línea de texto como nombre del archivo de audio (por ejemplo, "01 Capítulo uno.mp3", "02 Capítulo dos.mp3")?

Respuesta

En el cuadro "Base del nombre para archivos de salida" de la ventana "Dividir y convertir en archivos de audio", escriba %FirstLine%. La aplicación reemplazará esta variable por la primera línea de cada parte del texto. Para cambiar la posición de la numeración secuencial dentro del nombre de archivo, utilice la variable %Number%.

Pregunta

¿Qué es la interfaz IFilter?

Respuesta

La interfaz IFilter funciona con documentos. Proporciona filtros para extraer información de formatos de archivo propietarios. Los motores de búsqueda de texto completo llaman a los métodos de la interfaz IFilter. Hay disponibles IFilters para PDF de Adobe, WordPerfect y muchos otros formatos de archivo populares. Puede obtener instaladores de IFilters desde los proveedores respectivos. IFilter.org es un buen lugar para empezar. Observe que, como Balabolka es una aplicación de 32 bits, puede que tenga que instalar las versiones de 32 bits de los IFilters.

Pregunta

¿Cómo cambio la voz mientras se lee en voz alta?

Respuesta

Utilice las etiquetas XML. Se recomienda escribir las etiquetas de apertura y cierre en el mismo párrafo. Por ejemplo:

<voice required="Name=Microsoft Helena Desktop">Hola, ¿cómo estás?</voice>
<voice required="Name=IVONA 2 Conchita">Bien.</voice>

Pregunta

¿Puedo utilizar los archivos multimedia generados con Balabolka en vídeos de YouTube?

Respuesta

Balabolka es gratuito (freeware), de modo que puede crear archivos de audio sin costo. Pero, si utiliza voces comerciales, tiene que contactar con los desarrolladores de la voz y adquirir la licencia para uso comercial/difusión de audio. La licencia para distribución de audio le permitirá utilizar voz en vídeos de YouTube.

Por ejemplo, la información del sitio web de Cepstral: "Las voces de Cepstral Personal sólo son para uso personal y NO se licencian para distribución de audio. Esto significa que el audio que cree es sólo para utilizarlo usted y no puede compartirse con otros ni utilizarse en vídeos, presentaciones o páginas web. Si le interesa una licencia para distribución de audio, contacte a Ventas."


Utilización de listas de reemplazos

Reglas de reemplazos

Panel de diccionarios

El programa brinda la oportunidad de utilizar listas especiales de reemplazos ("diccionarios") para mejorar la pronunciación de las palabras. Son archivos de texto en los que cada línea contiene una regla de sustitución. Las reglas pueden ser expresiones regulares (nombres de archivo con extensión *.rex) o plantillas (nombres de archivo con extensión *.dic). Los archivos con la extensión *.bxd combinan las opciones de los otros dos formatos.

Cuando el usuario le ordena al programa que lea texto en voz alta, Balabolka comprueba en los diccionarios qué palabras del texto requieren que se corrija su pronunciación y aplica la regla de sustitución respectiva desde el diccionario. El texto alterado se envía al portapapeles de la voz del equipo, y la voz lee el texto en voz alta.

Para ver la lista de diccionarios que emplea el programa, seleccione el elemento de menú "Ver | Mostrar | Panel de diccionarios" o pulse F11. A la derecha de la ventana principal, se mostrará la lista de nombres de archivo; se divide en dos partes:

  • parte superior - archivos con listas de reemplazos;
  • parte inferior - archivos con listas de homógrafos (heterónimos).

Las distintas voces del equipo pueden usar listas de reemplazos diferentes. El usuario puede seleccionar los archivos necesarios desde la lista.

Para crear un diccionario nuevo, haga clic con el botón derecho en el panel de diccionarios y, en el menú contextual, seleccione "Nuevo" y escriba el nombre de archivo para el diccionario nuevo. Se creará el archivo en el disco, apareciendo su nombre en la lista del panel.

Si el usuario desea hacer cambios en la lista de reemplazos, debe seleccionar el archivo necesario de la lista y hacer clic en "Editar". Esto abrirá una ventana para editar la lista de reemplazos. Para añadir una regla de reemplazo nueva es necesario rellenar los campos "Leer esto:" y "Como:", luego hacer clic en "Añadir". Tras finalizar el proceso de edición, haga clic en "Guardar" y salga del editor.

Lista de reglas generales

Si en la lista se seleccionan varios nombres de archivo, la aplicación combina automáticamente las reglas de esos diccionarios en una única lista que se almacena en la memoria del equipo. Para ver esta lista, haga clic con el botón derecho en el panel de diccionarios y seleccione "Mostrar lista" en el menú emergente.

Cuando se unen reglas de archivos distintos en una lista compartida, pasa lo siguiente:

  • las reglas de archivos *.rex se añaden una tras otra, pues están en el vocabulario; los archivos se procesan en orden alfabético.
  • todas las reglas de archivos *.dic se ordenan de tal manera que primero estén las reglas sensibles a mayúsculas, después las reglas no sensibles a mayúsculas, posteriormente las reglas vuelven a ordenarse por la longitud en la plantilla - aquellas con el patrón de símbolos más largo se colocan cerca del principio.

El orden de las reglas en la lista resulta importante en los casos en que a una misma palabra del texto se le puedan aplicar múltiples reglas. Balabolka realiza los reemplazos de manera secuencial, es decir, se aplicará la segunda regla al texto que ya haya sido modificado por la primera regla de la lista. En este caso, el orden de las reglas es importante.

Las reglas de archivos con extensión *.rex se aplicarán al texto antes. Para comprobar el resultado de la aplicación de reglas de listas de cambios al texto del documento actual, puede utilizar las opciones del menú principal "Opciones | Corrección de pronunciación | Ver texto cambiado" y "Opciones | Corrección de pronunciación | Estadísticas de reemplazo".

Herramientas adicionales

Para encontrar un par de reglas con incidencia en el mismo texto, debe seleccionar el elemento de menú "Opciones | Corrección de pronunciación | Buscar pares de reglas". Esto permite localizar las reglas que no se usarían nunca porque otra regla ya ha modificado una expresión en el texto.

Las correcciones necesarias más frecuentes son en nombres de personas, nombres de lugares, apodos de animales, nombres de organizaciones, etc. La búsqueda de estas palabras en el documento actual se puede facilitar en razón del elemento del menú principal "Opciones | Corrección de pronunciación | Buscar nombres en el texto". Balabolka posibilita ver tres listas de palabras encontradas:

  • nombres (palabras que en el documento actual siempre comienzan con una letra en mayúscula);
  • todas las palabras con letra inicial en mayúscula;
  • todas las palabras que se encuentren en el documento de texto.

A medida que se mueva por la lista de palabras, la aplicación irá leyendo automáticamente las palabras en voz alta. Si una palabra se lee mal, puede corregir su pronunciación añadiendo una regla nueva al diccionario. La lista de los nombres encontrados se puede ordenar alfabéticamente, o bien por frecuencia de aparición de las palabras en el texto. Asimismo, puede hacer que no se muestren las palabras que aparecen en el texto sólo un par de veces; esto acelerará la comprobación de la lista de los nombres encontrados en el documento.

Perfiles

La configuración actual del panel de diccionarios se puede almacenar en forma de "perfiles". Para crear y editar perfiles, utilice el elemento de menú "Opciones | Corrección de pronunciación | Perfiles".


Archivos REX con correcciones de pronunciación

En cada línea, el segundo conjunto de letras es la pronunciación fonética de reemplazo para el primer conjunto de letras. Tenga en cuenta que los reemplazos ocurren en el orden en el que aparecen. Por ejemplo, estas dos líneas:

rat=mouse
mouse=hamster

rat se transforma en hamster. Puede que no sea lo que se pensaba hacer.

Las líneas de comentarios empiezan con el signo de libra (#) y se ignoran.

La cadena del lado izquierdo puede contener un patrón a base de expresiones regulares. Los patrones a base de expresiones regulares no son sensibles a mayúsculas. Si desea definir un patrón sensible a mayúsculas, debe añadir el símbolo "@" al principio de la línea; por ejemplo:

@ONCE=Organización Nacional de Ciegos Españoles

A continuación están los caracteres y secuencias que pueden utilizarse.

Carácter | Descripción
\ | Marca el carácter siguiente ya sea como especial o literal. Por ejemplo, "n" coincide con el carácter "n". "\n" coincide con un carácter de línea nueva. La secuencia "\\" coincide con "\", "\(" coincide con "(" y "\=" coincide con "=".
^ | Coincide con el principio de la entrada.
$ | Coincide con el final de la entrada.
* | Coincide con el carácter que lo precede cero o más veces. Por ejemplo, "zo*" coincide con "z" o "zoo".
+ | Coincide con el carácter que lo precede una o más veces. Por ejemplo, "zo+" coincide con "zoo" pero no con "z".
? | Coincide con el carácter que lo precede cero o más veces. Por ejemplo, "a?ve?" coincide con "ve" en "never".
. | Coincide con cualquier carácter, excepto de línea nueva.
(patrón) | Coincide con patrón y recuerda la coincidencia. La subcadena de coincidencia puede obtenerse utilizando el carácter especial $N, donde N es la declaración Nth entre paréntesis en la expresión regular. Para coincidir con caracteres de paréntesis ( ), use "\(" o "\)".
x|y | Coincide ya sea con x o y. Por ejemplo, "z|food" coincide con "z" o "food". "(z|f)oo" coincide con "zoo" o "foo".
{n} | n es un entero no negativo. Coincide exactamente con n veces. Por ejemplo, "o{2}" no coincide con la "o" en "Bob", pero coincide con las dos primeras os en "foooood".
{n,} | n es un entero no negativo. Coincide con al menos n veces. Por ejemplo, "o{2,}" no coincide con la "o" en "Bob" y coincide con todas las os en "foooood". "o{1,}" equivale a "o+". "o{0,}" equivale a "o*".
{n,m} | m y n son enteros no negativos. Coincide con al menos n y como máximo m veces. Por ejemplo, "o{1,3}" coincide con las tres primeras os en "fooooood". "o{0,1}" equivale a "o?".
[xyz] | Un conjunto de caracteres. Coincide con cualquiera de los caracteres encerrados. Por ejemplo, "[abc]" coincide con la "a" en "plain".
[^xyz] | Un conjunto de caracteres negativo. Coincide con cualquier carácter que no encierre. Por ejemplo, "[^abc]" coincide con la "p" en "plain".
[a-z] | Un rango de caracteres. Coincide con cualquier carácter en el rango especificado. Por ejemplo, "[a-z]" coincide con cualquier carácter alfabético en minúscula del rango "a" hasta "z".
[^m-z] | Un rango de caracteres negativo. Coincide con cualquier carácter que no se halle en el ragon especificado. Por ejemplo, "[m-z]" coincide con cualquier carácter que no se encuentre en el rango "m" hasta "z".
\b | Coincide con un separador de palabras, es decir, la posición entre una palabra y un espacio. Por ejemplo, "er\b" coincide con "er" en "never" pero no con "er" en "verb".
\B | Coincide con un separador que no sea de palabras. "ea*r\B" coincide con "ear" en "never early".
\d | Coincide con un carácter numérico. Equivale a [0-9].
\D | Coincide con un carácter no numérico. Equivale a [^0-9].
\f | Coincide con un carácter de avance.
\n | Coincide con un carácter de línea nueva.
\r | Coincide con un carácter de retorno de carro.
\s | Coincide con cualquier carácter de espacio en blanco incluyendo espacio, tabulación, avance, etc. Equivale a "[ \f\n\r\t\v]".
\S | Coincide con cualquier carácter que no sea de espacio en blanco. Equivale a "[^ \f\n\r\t\v]".
\t | Coincide con un carácter de tabulación.
\v | Coincide con un carácter de tabulación vertical.
\w | Coincide con cualquier carácter de las palabras, incluyendo guion bajo. Equivale a "[A-Za-z0-9_]".
\W | Coincide con cualquier carácter que no se encuentre en palabras. Equivale a "[^A-Za-z0-9_]".
\núm | Coincide con núm, donde núm es un entero positivo. Queda una referencia para recordar la coincidencia. Por ejemplo, "(.)\1" coincide con dos caracteres idénticos consecutivos.
\n | Coincide con n, donde n es un valor de escape octojecimal. Los valores de escape octojecimal deben tener 1, 2 o 3 números de longitud. Por ejemplo, tanto "\11" como "\011" coinciden con un carácter de tabulación. "\0011" es el equivalente de "\001" & "1". Los valores de escape octojecimal no deben excederse de 256. Si lo hacen, la expresión se comprime sólo a los primeros dos números. Permite utilizar códigos ASCII en expresiones regulares.
\xn | Coincide con n, donde n es un valor de escape hexadecimal. Los valores de escape hexadecimales deben tener exactamente dos números de longitud. Por ejemplo, "\x41" coincide con "A". Permite utilizar códigos ASCII en expresiones regulares.
\x{n} | Coincide con n, donde n es un valor de escape hexadecimal. Los valores de escape hexadecimales deben tener exactamente cuatro números de longitud. Por ejemplo, "\x{00dc}" coincide con "Ü". Permite utilizar códigos Unicode en expresiones regulares.

Balabolka admite los operadores especiales para conversión de texto a mayúscula o minúscula.

Operador | Descripción
\U | convierte todos los caracteres hasta el siguiente \L o \E a mayúsculas.
\L | Convierte todos los caracteres hasta el siguiente \U o \E a minúsculas.
\E | Desactiva la conversión de mayúsculas y minúsculas.
\u | Convierte el carácter siguiente a mayúscula.
\l | Convierte el carácter siguiente a minúscula.

Por ejemplo, la expresión:

(prueba)=\U$1\E

convertirá "prueba" en "PRUEBA".


Archivos DIC con correcciones de pronunciación

En cada línea, el segundo conjunto de letras es la pronunciación fonética de reemplazo para el primer conjunto de letras. Las líneas de comentarios comienzan con el signo de libra (#) y se ignoran.

Los patrones no son sensibles a mayúsculas. Si desea definir un patrón sensible a mayúsculas, debe añadir el símbolo "$" al principio de la línea; por ejemplo:

$ONCE=Organización Nacional de Ciegos Españoles

De forma predeterminada, el patrón coincide con la palabra completa (o varias palabras). Si hay letras antes o después del patrón, se usa el símbolo "*". Por ejemplo:

auto*=avto

Este patrón coincide con "autobiografía", "autoanálisis", "automóvil", etc. Dos símbolos especiales secuenciales ("#", "*", "=", "$") denotan un solo carácter; por ejemplo:

**=asterisco


Homógrafos

Algunas palabras, llamadas homógrafos u homogramas, causan quizá los problemas más complejos en los sistemas de TTS. Los homógrafos se escriben de igual manera pero difieren en significado y habitualmente en pronunciación (ej. fair, lives). La palabra en inglés lives, por ejemplo, se pronuncia diferente en las oraciones "Three lives were lost" y "One lives to eat". Algunas palabras, ej. lead, tienen pronunciaciones distintas según se empleen como verbos o sustantivos, así como entre dos sentidos del sustantivo (He followed her lead / He covered the hull with lead). Con palabras de esta clase, es necesario algo de información semántica para lograr la pronunciación correcta.

En español, debido a que la mayoría de letras del alfabeto corresponden a un fonema, este factor de complejidad en el procesamiento de texto a voz suele reducirse a y, pero incluso en este caso existen reglas generalizables:

  • Aisladamente ("compramos comida y bebidas"), es una conjunción copulativa pronunciada con el fonema /i.
  • En medio de una palabra ("espero que no se haya ofendido"), esta letra representa los fonemas /sh o /xi. Puesto que en este caso la pronunciación no depende de la ortografía sino del país o la región, en principio ésta se hallará sujeta al dialecto del motor de texto a voz que se esté utilizando.
  • Al final de una palabra ("voy a hacer pan porque veo que hoy no hay más"), la letra y representa invariablemente el fonema /i.

La letra h, por lo demás, tan sólo se presenta en la locución al estar precedida por la letra c con el fonema /ch (como en chile); en el resto de casos es muda y tampoco incide en las reglas de acentuación. Si a ello se suma que por escrito la sílaba tónica (aquella que suena más fuerte) de cada palabra se encuentra identificada por la posición del acento ortográfico —o su ausencia— conforme a reglas preestablecidas, junto a que la carencia de auxiliares invariables para iniciar exclamaciones e interrogaciones se ve cubierta con la disponibilidad de los signos de apertura respectivos (¡ y ¿), puede observar que las problemáticas que aquí se continúan analizando en base al inglés tienen, en comparación con otros idiomas como alemán, francés o inglés, en que los conjuntos de correspondencias letra-fonema son mucho menores, menos relevancia en español.

La pronunciación de una determinada palabra también podría ser diferente debido a efectos contextuales. Es fácil de vislumbrarlo si se comparan las frases the end y the beginning. La pronunciación de the depende del fonema inicial de la palabra siguiente. Las palabras compuestas también son problemáticas. Por ejemplo, los caracteres 'th' en mother y hothouse se pronuncian de manera diferente. Asimismo, algunos sonidos se presentarán o no en la locución según el contexto. Por ejemplo, el fonema /s/ en la palabra dogs se presenta en la locución, pero no así en la palabra cats.

Los heterónimos son una clase de homógrafos. Son palabras que se escriben igual pero difieren en significado y pronunciación. Todos los heterónimos son también homógrafos, pero no todos los homógrafos son heterónimos. Muchos heterónimos son similares en significado (especialmente los verbos y sustantivos relacionados que se escriben igual pero se pronuncian diferente), mientras que otros casi ni tienen relación.

Averiguar la pronunciación de nombres propios, especialmente cuando se trata de calcos desde otras lenguas, suele ser una de las tareas más difíciles para todo sistema de TTS. Algunos nombres comunes, como Nice y Begin, en contextos en que van con mayúscula resultan ambiguos, tanto en la posición inicial de la frase, títulos y textos aislados. Por ejemplo, la frase Nice is a nice place resulta muy problemática porque la palabra Nice puede pronunciarse como /niis/ o /nais/. Algunos nombres y lugares también tienen pronunciación especial, como Leicester y Arkansas. Para que la pronunciación sea correcta, esta clase de palabras puede incluirse en diccionarios de excepciones específicos (archivos con extensión *.hmg, por ejemplo English.hmg).

En cada línea, el segundo conjunto de letras contiene las pronunciaciones fonéticas de reemplazo para el primer conjunto de letras, enumeradas por comas. Por ejemplo:

lead=leed,led

Los patrones no son sensibles a mayúsculas. Si desea definir un patrón sensible a mayúsculas, debe añadir el símbolo "$" al principio de la línea:

$Nice=Niis,Nais

El programa Balabolka permite añadir la lista de expresiones para cada homógrafo (ficha "Expresiones con homógrafo" en el editor de homógrafos); estas expresiones se reemplazarán automáticamente durante la búsqueda de homógrafos (el elemento del menú principal "Texto | Buscar homógrafos"). Por ejemplo:

close=close,cloze

too close=close
to close his eyes=cloze

Si la expresión es sensible a mayúsculas, debe añadir el símbolo "$" al principio del texto:

$Nice=Niis,Nais

$city Nice=Niis
nice to have=nais

Se puede usar el carácter comodín "*" en lugar de toda una palabra o algunas letras de una palabra (al principio o al final de una palabra):

close=close,cloze

to close * eyes=cloze


Etiquetas de control (SAPI 4)

Esta sección describe las etiquetas de control que se pueden integrar en el texto de origen para mejorar la prosodia en la traducción de texto a voz:

  • Sintaxis
  • Convenciones
  • Chr
  • Com
  • Ctx (puede que algunos motores de voz no admitan esta etiqueta)
  • Dem (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • Emp (puede que algunos motores de voz no admitan esta etiqueta)
  • Eng
  • Mrk
  • Pau
  • Pit
  • Pra (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • Prn (puede que algunos motores de voz no admitan esta etiqueta)
  • Pro (puede que algunos motores de voz no admitan esta etiqueta)
  • Prt (puede que algunos motores de voz no admitan esta etiqueta)
  • RmS (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • RmW (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • RPit (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • RPrn (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • RSpd (nueva en SAPI 4.0 -- puede que algunos motores de voz no admitan esta etiqueta)
  • Rst (nueva en SAPI 4.0)
  • Spd
  • Vce (puede que algunos motores de voz no admitan esta etiqueta)
  • Vol

Un motor de texto a voz suele poder traducir correctamente palabras individuales a voz. Sin embargo, cuando el motor lee una frase, la calidad percibida de su traducción disminuye porque el motor no puede sintetizar la prosodia humana correctamente -- inflexiones, acento y tiempos de la voz humana.

La prosodia de la voz traducida puede mejorarse utilizando etiquetas de control de texto a voz para simular mejor la voz humana.

Esta sección describe etiquetas de control que usted puede utilizar para modificar la prosodia del texto traducido a voz. Todas las etiquetas son opcionales salvo la de marca (Mrk), la cual se debe admitir.

Sintaxis

Las etiquetas de control de texto a voz siguen estas reglas generales de sintaxis:

  • Todas las etiquetas comienzan y terminan con una barra invertida (\).
  • La barra invertida no se permite dentro de las etiquetas.
  • Las cantidades impares de barras invertidas en el texto etiquetado producen en el motor comportamientos impredecibles.
  • Las etiquetas no son sensibles a mayúsculas. Por ejemplo, \vce\ es igual que \VCE\.
  • Las etiquetas dependen de los espacios en blanco. Por ejemplo, \Rst\ no es igual que \ Rst \.

Para incluir una barra invertida en el texto etiquetado, aunque fuera de las etiquetas, utilice una barra invertida doble (\\).

Si la aplicación tiene activado el bit de texto etiquetado y desea leer un nombre de archivo, tal como "c:\windows\system\prueba.txt", hay que duplicar las barras invertidas (ej. "c:\\windows\\system\\prueba.txt").

Muestras:

  • - Debe analizarse como una etiqueta "e-mail".
  • \ctx="e-mail" - Debe ignorarse en tanto es una etiqueta sin cerrar al final de un documento.
  • \\ctx="e-mail"\\ - Lee "barra invertida c t x igual e-mail barra invertida"
  • \\\\\\\\ctx="e-mail"\\\\\\\\ - Lee "barra invertida barra invertida barra invertida barra invertida c t x igual e-mail barra invertida barra invertida barra invertida barra invertida"
  • \ctm="e-mail"\ - Se ignora por ser una etiqueta que se desconoce.

Cuando el motor de texto a voz encuentra una etiqueta que no entiende, ésta se ignora.

Convenciones

Esta sección usa las convenciones tipográficas siguientes.

Ejemplo | Descripción
Chr | Lo escrito en negrita indica palabras clave para inflexión de la voz.
cadena | Lo que está en cursiva indica marcadores de posición para información que suministra usted, como un carácter o una cadena de contexto.
[[opcion.]] | Los corchetes dobles indican elementos opcionales.
[[opcion...]] | Tres puntos (una elipsis) siguiendo a un elemento indican que pueden aparecer más elementos con la misma forma.
"C" | Las comillas hacen falta para delimitar cadenas.

Chr

\Chr=cadena[[,cadena...]]\

Configura el carácter de la voz.

Ejemplo: \Chr="Angry"\

Parámetro | Descripción
cadena | Cadena que especifica las características de la voz.

La característica predeterminada es "Normal", la cual produce un tono de voz normal. Aunque la etiqueta Chr es menos específica que configurar individualmente las calidades de inflexión, estrés, ataque y susurro, resulta más fácil de usar y permite al motor más inteligencia y flexibilidad en su respuesta.

En la misma etiqueta se pueden especificar varias características, separadas por comas. Dependiendo de sus capacidades, puede que algún motor no sea compatible con todas las características que se listan aquí, o quizá sea compatible con características adicionales. Algunas características comunes son las siguientes:

"Angry"
"Business"
"Calm"
"Depressed"
"Excited"
"Falsetto"
"Happy"
"Loud"
"Monotone"
"Perky"
"Quiet"
"Sarcastic"
"Scared"
"Shout"
"Tense"
"Whisper"

Com

\Com=cadena\

Incrusta un comentario en el texto. Los comentarios no se traducen a voz.

Ejemplo: \com="Esto es un comentario"\

Parámetro | Descripción
cadena | Texto del comentario.

Ctx

\Ctx=cadena\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Establece el contexto del texto que sigue, lo cual determina cómo se leen los símbolos.

Ejemplo: \ctx="Unknown"\

Parámetro | Descripción
cadena | Cadena que especifica el contexto.

Este parámetro puede ser alguna de estas cadenas:

Cadena de contexto | Descripción
"Address" | Direcciones y/o números de teléfono
"C" | Código en lenguaje de programación C o C++
"Document" | Documento de texto
"E-Mail" | Correo electrónico
"Numbers" | Números, fechas, horas y demás
"Spreadsheet" | Hoja de cálculo
"Unknown" | Se desconoce el contexto (predeterminado)
"Normal" | Modo de voz normal/predeterminado.

Dem

\Dem\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Desenfatiza la palabra siguiente.

Emp

\Emp\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Enfatiza la palabra siguiente que se lea.

Ejemplo: la \Emp\verdad, \Emp\toda la verdad y nada \Emp\más que la verdad.

Eng

\Eng;GUID:comando\
\Eng:comando\

Incrusta un comando específico del motor que sólo afecta al motor con el identificador único global (GUID) especificado. En las siguientes etiquetas específicas del motor para dicho motor puede omitirse el GUID hasta que se use una etiqueta específica de un motor distinto.

Parámetro | Descripción
GUID | Identificador único global del motor.
comando | Comando específico del motor.

Mrk

\Mrk=número\

Indica una marca en el texto.

Ejemplo: \Mrk=75000\

Parámetro | Descripción
número | Número de la marca.

La etiqueta Mrk acepta una representación decimal. El número de marca cero (\Mrk=0\) está reservado.

Pau

\Pau=número\

Pausa la voz por el número de milisegundos especificado.

Ejemplo: \Pau=1000\

Parámetro | Descripción
número | Número de milisegundos durante los que pausar.

Pit

\Pit=número\

Establece el tono base del modo de texto a voz en el valor especificado en hertz.

Ejemplo: \Pit=90\

Parámetro | Descripción
número | Tono, en hertz.

El tono real fluctúa por encima y por debajo de esta base.

Pra

\Pra=valor\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Establece el rango de tonos.

Parámetro | Descripción
valor | Rango de tonos en Hz.

Prn

\Prn=texto=pronunciación\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Indica cómo pronunciar el texto pasando al motor el equivalente fonético.

Ejemplo: \Prn=tomato=tomaato\

Parámetro | Descripción
texto | Texto a pronunciar.
pronunciación | Equivalente fonético para pronunciar el texto.

Al usar la etiqueta Prn sin especificar la pronunciación de la palabra (\Prn=texto\) se desharán los cambios de pronunciación; es decir, la palabra volverá a la pronunciación original.

Esta etiqueta sólo es válida para motores compatibles con el Alfabeto Fonético Internacional. El motor debería continuar utilizando la pronunciación durante el modo de texto a voz actual y almacenarla en el léxico para uso posterior. Si para una palabra en particular ya existiera una entrada en el léxico, para esa palabra la etiqueta Prn se debería ignorar.

Pro

\Pro=número\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Activa y desactiva las reglas de prosodia que afectan al tono, la velocidad de voz y al volumen de las palabras independientemente de las etiquetas de control incrustadas en el texto. Las reglas de prosodia las aplica el motor.

Ejemplo: \Pro=0\

Parámetro | Descripción
número | Número que indica si activar o desactivar las reglas de prosodia. Configurar el número en 1, el predeterminado, activa las reglas de prosodia. Configurar el número en 0 las desactiva.

Prt

\Prt=cadena\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Indica la categoría gramatical de la palabra siguiente.

Ejemplo: \prt="Abbr"\

Parámetro | Descripción
cadena | Cadena que indica la categoría gramatical.

Este parámetro puede ser una de estas cadenas:

Cadena | Descripción
"Abbr" | Abreviatura
"Adj" | Adjetivo
"Adv" | Adverbio
"Card" | Número cardinal
"Conj" | Conjunción
"Cont" | Contracción
"Det" | Determinante
"Interj" | Interjección
"N" | Sustantivo
"Ord" | Número ordinal
"Prep" | Preposición
"Pron" | Pronombre
"Prop" | Sustantivo propio
"Punct" | Puntuación
"Quant" | Cuantificador
"V" | Verbo

RmS

\RmS=número\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Configura el modo de lectura para que deletree las palabras o lo desactiva. No todos los motores admiten esta etiqueta, con lo que las aplicaciones pueden obtener resultados más consistentes normalizando el texto en sí, colocando espacios tras cada letra.

Parámetro | Descripción
número | Número que indica si deletrear las palabras o no. Configurar el número en 1 establece el modo de deletreo. Configurar el número en 0, el predeterminado, lo desactiva.

RmW

\RmW=número\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Configura el modo de lectura para efectuar pausas audibles luego de cada palabra, o lo desactiva. No todos los motores admiten esta etiqueta, por lo que las aplicaciones pueden obtener resultados más consistentes normalizando el texto en sí, colocando puntos entre las palabras.

Parámetro | Descripción
número | Número que indica si efectuar o no pausas audibles luego de cada palabra. Configurar el número en 1 establece el modo de lectura para efectuar pausas audibles luego de cada palabra. Configurar el número en 0, el predeterminado, las desactiva.

RPit

\RPit=valor\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Establece el tono relativo.

Parámetro | Descripción
valor | Tono relativo. 100 es el predeterminado/original de la voz.

RPrn

\RPrn=valor\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Establece el rango de tonos relativos.

Parámetro | Descripción
valor | Rango de tonos relativos. 100 es el predeterminado/original de la voz.

RSpd

\RSpd=valor\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Establece la velocidad relativa. 100 es la predeterminada/original de la voz.

Parámetro | Descripción
valor | Velocidad relativa. 100 es la predeterminada/original de la voz.

Rst

\Rst\

Restablece las configuraciones del motor a las predeterminadas del modo actual, tal como si el modo se hubiera vuelto a crear.

Spd

\Spd=número\

Establece la velocidad promedio base de habla del modo de texto a voz al número de palabras por minuto especificado.

Ejemplo: \Spd=120\

Parámetro | Descripción
número | Velocidad base promedio de habla, en palabras por minuto.

Vce

\Vce=caract=valor[[,caract=valor]]\
Nota: Puede que algunos motores de voz no admitan esta etiqueta.

Ordena al motor que cambie la voz que está hablando por una con las características especificadas.

Parámetro | Descripción
caract | Alguna característica de las listadas en la tabla de más abajo.
valor | Cadena que especifica la característica.

Las características se especifican según el orden de importancia. El motor selecciona una voz lo más coincidente posible con las características especificadas al principio de la lista.

El argumento caract=valor puede ser alguno de los siguientes:

  • Language=idioma. Solicita al motor hablar en el idioma especificado
  • Accent=acento. Solicita al motor hablar con el acento especificado. Por ejemplo, si language="English" y Accent="French", el motor hablará en inglés con acento francés.
  • Dialect=dialecto. Solicita al motor hablar en el dialecto especificado
  • Gender=sexo. Especifica el sexo de la voz: "Male", "Female" o "Neutral".
  • Speaker=nombredehablante. Especifica el nombre de la voz, o NULL si el nombre no es importante
  • Age=edad. Especifica la edad de la voz, que puede ser uno de los valores que se muestran más abajo
  • Style=estilo. La personalidad de la voz -- por ejemplo: "Business", "Casual", "Computer", "Excited" o "Singsong".
Cadena de edad | Descripción
"Baby" | De aproximadamente 1 año
"Toddler" | De aproximadamente 3 años
"Child" | De aproximadamente 6 años
"Adolescent" | De aproximadamente 14 años
"Adult" | De entre 20 y 60 años
"Elderly" | De más de 60 años

Vol

\Vol=número\

Establece el volumen de habla base del modo de texto a voz.

Ejemplo: \Vol=32768\

Parámetro | Descripción
número | Volumen de habla base.

El nivel de volumen es un rango lineal de 0 como silencio absoluto a 65535 como el volumen monoaural máximo. El predeterminado es 65535.

Si especifica un valor mayor que 65535, el motor supone que desea configurar los canales izquierdo y derecho por separado y convierte el valor en una palabra doble, empleando la palabra low para el canal izquierdo y la palabra high para el canal derecho. Por ejemplo, un valor de 65536 configura el canal izquierdo en el volumen de habla base máximo y el derecho en el mínimo.


Etiquetas XML (SAPI 5)

El marcado de síntesis SAPI 5 es la colección de etiquetas en lenguaje de marcado extensible (Extensible Markup Language, XML) que se insertan en el texto para modificar la síntesis de voz de dicho texto. Estas etiquetas XML, que proporcionan funcionalidad como control de volumen y énfasis de palabras, se insertan en el texto. De forma predeterminada, el analizador XML de SAPI detecta el XML automáticamente. En caso de que una estructura XML no sea válida, el programa puede devolver un error de síntesis.

Todo elemento XML consta de una etiqueta inicial <alguna_etiqueta> y una etiqueta final </alguna_etiqueta> con un nombre de etiqueta que no distingue mayúsculas/minúsculas y contenido entre estas etiquetas. Si el elemento está vacío, no tiene contenidos <alguna_etiqueta></alguna_etiqueta> y tanto la etiqueta inicial como la final pueden ser la misma <alguna_etiqueta/>.

Todos los elementos XML deben anidarse correctamente dentro de otros.

INCORRECTO:

<etiqueta1><etiqueta2> texto </etiqueta1></etiqueta2>

CORRECTO:

<etiqueta1><etiqueta2> texto </etiqueta2></etiqueta1>

Puesto que el elemento <etiqueta2> se abre dentro del elemento <etiqueta1>, debe cerrarse dentro del elemento <etiqueta1>.

Para añadir etiquetas al texto seleccionado, utilice el elemento del menú principal "Texto | Insertar etiquetas XML". Se insertará una etiqueta inicial al principio del texto seleccionado y una etiqueta final al final.

Las etiquetas XML de SAPI para texto a voz se clasifican en varias categorías.

  • Control de estado de la voz
  • Inserción directa de elementos
  • Control del contexto de la voz
  • Selección de voz
  • Pronunciación personalizada

Etiquetas de control de estado de la voz

SAPI TTS XML admite cinco etiquetas que controlan el estado de la voz actual: Volume, Rate, Pitch, Emph y Spell.

Volume

La etiqueta Volume controla el volumen de una voz. La etiqueta puede estar vacía, en cuyo caso se aplica a todo el texto que le siga, o puede tener contenido, en cuyo caso sólo se aplica a tal contenido.

La etiqueta Volume tiene un atributo requerido: Level. El valor de este atributo tiene que ser un entero entre cero y cien. Los valores fuera de este rango se truncarán.

<volume level="50"> Este texto se debe leer en volumen a nivel cincuenta. <volume level="100"> Este texto se debe leer en volumen a nivel cien. </volume> </volume>
<volume level="80"/> Todo el texto que sigue se debe leer en volumen a nivel ochenta.

Cien representa el volumen predeterminado de una voz. Los valores más bajos representan porcentajes de este predeterminado. Es decir, 50 corresponde al 50% del volumen total.

Rate

La etiqueta Rate controla la velocidad de una voz. La etiqueta puede estar vacía, en cuyo caso se aplica a todo el texto que le siga, o puede tener contenido, en cuyo caso sólo se aplica a tal contenido.

La etiqueta Rate tiene dos atributos, Speed y AbsSpeed, uno de los cuales debe estar presente. El valor de cualquiera de estos atributos tiene que ser un entero entre menos diez y diez. Los valores fuera de este rango podrían ser truncados por el motor (aunque no los trunca SAPI). El atributo AbsSpeed controla la velocidad absoluta de la voz, con lo que un valor de diez siempre corresponde a un valor de diez, un valor de cinco siempre corresponde a un valor de cinco.

<rate absspeed="5"> Este texto se debe leer a velocidad cinco. <rate absspeed="-5"> Este texto se debe leer a velocidad menos cinco. </rate> </rate>
<rate absspeed="10"/> Todo el texto que sigue se debe leer a velocidad diez.

El atributo Speed controla la velocidad relativa de la voz. El valor absoluto se obtiene añadiendo cada velocidad al valor absoluto actual.

<rate speed="5"> Este texto se debe leer a velocidad cinco. <rate speed="-5"> Este texto se debe leer a velocidad cero. </rate> </rate>

Cero representa la velocidad predeterminada de una voz, con valores positivos más rápidos y negativos más lentos.

Pitch

La etiqueta Pitch controla el tono de una voz. La etiqueta puede estar vacía, en cuyo caso se aplica a todo el texto que le siga, o puede tener contenido, en cuyo caso sólo se aplica a tal contenido.

La etiqueta Pitch tiene dos atributos, Middle y AbsMiddle, uno de los cuales debe estar presente. El valor de cualquiera de estos atributos tiene que ser un entero entre menos diez y diez. Los valores fuera de este rango podrían ser truncados por el motor (aunque no los trunca SAPI).

El atributo AbsMiddle controla el tono absoluto de la voz, con lo que un valor de diez siempre corresponde a un valor de diez, un valor de cinco siempre corresponde a un valor de cinco.

<pitch absmiddle="5"> Este texto se debe leer en tono cinco. <pitch absmiddle="-5"> Este texto se debe leer en tono menos cinco. </pitch> </pitch>
<pitch absmiddle="10"/> Todo el texto que sigue se debe leer en tono diez.

El atributo Middle controla el tono relativo de la voz. El valor absoluto se obtiene añadiendo cada Middle al valor absoluto actual.

<pitch middle="5"> Este texto se debe leer en tono cinco. <pitch middle="-5"> Este texto se debe leer en tono cero. </pitch> </pitch>

Cero representa el tono medio predeterminado de una voz, con valores positivos más altos y negativos más bajos.

Emph

La etiqueta Emph le ordena a la voz que enfatice una palabra o sección del texto. La etiqueta Emph no puede estar vacía. La palabra siguiente debe enfatizarse.

<emph> ¡Huy </emph>!

El método del énfasis puede variar de voz a voz.

Spell

La etiqueta Spell fuerza a la voz a que deletree todo el texto, en lugar de usar sus reglas predeterminadas de pausa entre palabras y oraciones, reglas de normalización y demás. Todos los caracteres deben expandirse en las palabras correspondientes (incluidos puntuación, números y demás). La etiqueta Spell no puede estar vacía.

<spell> Estas palabras deben deletrearse. </spell> Estas palabras no se deben deletrear.

Etiquetas de inserción directa de elementos

Se admiten tres etiquetas que posibilitan a las aplicaciones insertar elementos en algún nivel: Silence, Pron y Bookmark.

Silence

La etiqueta Silence inserta un número especificado de milisegundos en el flujo de salida de audio. Esta etiqueta debe estar vacía y tener un atributo, Msec.

Los quinientos milisegundos de silencio <silence msec="500"/> acabaron de pasar.

Pron

La etiqueta Pron inserta una pronunciación especificada. La voz procesará la secuencia de fonemas tal como se especifique. Esta etiqueta puede estar vacía, o puede tener contenido. Si tiene contenido, será interpretada como que se proporciona la pronunciación del texto encerrado. Es decir, el texto encerrado no se procesará como se procesaría normalmente.

La etiqueta Pron tiene un atributo, Sym, cuyo valor es una cadena de fonemas separados por espacios en blanco.

<pron sym="h eh l l ow & w er l l d "/>
<pron sym="h eh l l ow & w er l l d"> hello world </pron>

El uso de fonemas se describe aquí.

Bookmark

La etiqueta Bookmark inserta un evento de marca en el flujo de salida de audio. Utilice este evento para enviar una señal a la aplicación cuando se haya llegado al audio del texto correspondiente a la etiqueta Bookmark. La etiqueta Bookmark debe estar vacía.

La etiqueta Bookmark tiene un atributo, Mark, cuyo valor es una cadena. Este valor puede usarse para diferenciar los eventos de marcas (cada uno de los que contiene el valor de la cadena en su etiqueta correspondiente).

La aplicación recibirá un evento aquí,

<bookmark mark="marca_1"/>

y otro aquí

<bookmark mark="marca_dos"/>

Etiquetas de control del contexto de la voz

Hay dos etiquetas que proporcionan contexto a la voz actual: PartOfSp y Context. Estas etiquetas posibilitan a la voz que determine cómo lidiar con el texto que está procesando. Con cualquiera de estas etiquetas, el grado en que las voces usen el contexto puede variar.

PartOfSp

La etiqueta PartOfSp proporciona a la voz la categoría gramatical de la(s) palabra(s) que encierra. Utilice esta etiqueta para que la voz pueda pronunciar correctamente una palabra con pronunciaciones múltiples dependiendo de su categoría gramatical. La etiqueta PartOfSp no puede estar vacía.

La etiqueta PartOfSp tiene un atributo, Part, que a su vez lleva como atributo una cadena correspondiente a una categoría gramatical de SAPI. Sólo se admiten las categorías gramaticales definidas en SAPI - "Unknown" (desconocida), "Noun" (sustantivo), "Verb" (verbo), "Modifier" (modificador), "Function" (función) e "Interjection" (interjección).

<partofsp part="noun"> A </partofsp> es la primera letra del alfabeto.

¿También <partofsp part="verb"> copias </partofsp> de <partofsp part="noun"> copias </partofsp>?

Context

La etiqueta Context proporciona a la voz información que ésta puede usar para determinar cómo normalizar elementos especiales como fechas, números y divisas. Utilice esta etiqueta para que la voz pueda distinguir formatos de fecha que dan lugar a confusión (vea el ejemplo de más abajo). La etiqueta Context no puede estar vacía.

La etiqueta Context tiene un atributo, Id, que lleva una cadena correspondiente al contexto del texto encerrado. Varios contextos están definidos en SAPI y son más proclives a que las voces compatibles con SAPI los reconozcan, pero se puede usar cualquier cadena. Para más detalles, consulte la documentación de alguna voz en particular.

<context id="date_mdy"> 03/04/01 </context> debe ser cuatro de marzo de dos mil uno.
<context id="date_dmy"> 03/04/01 </context> debe ser tres de abril de dos mil uno.
<context id="date_ymd"> 03/04/01 </context> debe ser primero de abril de dos mil tres.

Los tipos de contexto predefinidos se describen aquí.

Etiquetas de selección de voz

Hay dos etiquetas que (potencialmente) se pueden utilizar para cambiar la voz actual: Voice y Lang.

Voice

La etiqueta Voice selecciona una voz en base a sus atributos, Age, Gender, Language, Name, Vendor y VendorPreferred. La etiqueta puede estar vacía, en cuyo caso cambia la voz para todo el texto que le sigue, o puede tener contenido, en cuyo caso sólo cambia la voz para tal contenido.

La etiqueta Voice tiene dos atributos: Required y Optional. Siempre que se usa la etiqueta Voice, los atributos de la voz actual se añaden como opcionales. Esto significa que se seleccionará una voz similar a la actual con preferencia a una menos similar.

Si no se encuentra ninguna voz que coincida con todos los atributos requeridos, la voz no se cambiará.

La voz predeterminada tiene que leer esta oración. <voice required="Gender=Female;Age!=Child"> Una mujer que no sea niña tiene que leer esta oración, si es que hay alguna. <voice required="Age=Teen"> Un(a) adolescente tiene que leer esta oración - si hay alguna adolescente no niña, se seleccionará con preferencia ante un niño adolescente, por ejemplo. </voice> </voice>

Lang

La etiqueta Lang selecciona una voz meramente en base a su atributo Language (idioma). La etiqueta puede estar vacía, en cuyo caso cambia la voz para todo el texto que le sigue; o puede tener contenido, en cuyo caso sólo cambia la voz para tal contenido.

La etiqueta Lang tiene un atributo, LangId. Este atributo tiene que ser un LANGID, como 409 (inglés estadounidense), 40A (español) o 411 (japonés). Observe que estos números son hexadecimales, pero sin el habitual "0x".

La etiqueta Lang es una versión acortada de la etiqueta Voice con el atributo Required conteniendo "Language=xxx". Así pues, los ejemplos siguientes deberían producir exactamente los mismos resultados:

<voice required="Language=409"> A U.S. English voice should speak this. </voice>
<lang langid="409"> A U.S. English voice should speak this.</lang>
<voice required="Language=40A"> Esto lo debería leer una voz en español. </voice>
<lang langid="40A"> Esto lo debería leer una voz en español. </lang>

Pronunciación personalizada

Una alternativa a usar la etiqueta <P> con los atributos DISP y PRON es usar pronunciación personalizada. Usando pronunciación personalizada, las etiquetas son al estilo de las siguientes.

<P DISP="disp" PRON="pron">palabra</P>

puede escribirse como

<P>/disp/palabra/pron;</P>

Más específicamente, si desea reconocer la palabra hello cuando se pronuncia como ah y mostrar saludo cuando se reconozca, por lo general usaría algo como lo siguiente.

<P DISP="greeting" PRON="ah">hello</P>

Al usar pronunciación personalizada, lo anterior se traduciría en lo siguiente.

<P>/greeting/hello/ah;</P>


Definiciones para la etiqueta Context (SAPI 5)

La etiqueta XML CONTEXT especifica la normalización de un bloque de texto. Esta especificación define los atributos de SAPI predefinidos (ID) para la etiqueta CONTEXT. Estos ID son cadenas. SAPI no realiza ninguna validación de parámetros en la cadena que se pasa al motor, de ahí que la aplicación puede especificarle al motor ID de normalización específicos de éste. Las cadenas específicas de un motor empiezan por el nombre del vendedor del motor para evitar confusiones entre motores.

Por ejemplo:

<context id="Mi_contexto">texto</context>

La implementación exacta de algunos de estos valores depende del motor que se utilice con SAPI 5. Para forzar determinada normalización, los desarrolladores de aplicaciones pueden elegir normalizar el texto, o bien, utilizar otra etiqueta de SAPI o ID específico del motor. Cada etiqueta de contexto puede contener más de una cadena.

Por ejemplo:

<context id="date_mdy">12/21/99 11/21/99 10/21/99</context>

se normalizaría a "veintiuno de diciembre de mil novecientos noventa y nueve veintiuno de noviembre de mil novecientos noventa y nueve veintiuno de octubre de mil novecientos noventa y nueve".

Se admiten los tipos de contexto predefinidos siguientes:

  • Date
  • Time
  • Number
  • Web
  • E-mail
  • Address

Date

Este contexto especifica que el número que se pasa al motor es una fecha. Generalmente las fechas tendrán el formato número [delimitador] número [delimitador] número o número [delimitador] número, donde el delimitador puede ser '.', '/' o '-', y habitualmente los números van de 01 a 12 para meses y 01 a 31 para días. Generalmente los años son números de dos o cuatro dígitos.

Los siguientes son tipos de cadena válidos:

date_mdy

Normalizará la fecha de modo que el primer grupo de números sea el mes, el segundo el día y el tercero el año. Cuando el año es un número de dos dígitos, el motor lo lee como un número de dos o cuatro dígitos.

Por ejemplo:

<context id="date_mdy">12/21/99</context>

se normalizará a "veintiuno de diciembre del noventa y nueve"
o "veintiuno de diciembre de mil novecientos noventa y nueve"

<context id="date_mdy">12/21/1999</context>

se normalizará a "veintiuno de diciembre de mil novecientos noventa y nueve"

date_dmy

Normalizará la fecha de modo que el primer grupo de números sea el día, el segundo el mes y el tercero el año. Cuando el año es un número de dos dígitos, el motor lo lee como un número de dos dígitos. Si el año se representa con un número de cuatro dígitos, se representa como año de cuatro dígitos.

Por ejemplo:

<context id="date_dmy">21.12.99</context>

se normalizará a "veintiuno de diciembre del noventa y nueve"
o "veintiuno de diciembre de mil novecientos noventa y nueve"

<context id="date_dmy">21-12-1999</context>

se normalizará a "veintiuno de diciembre de mil novecientos noventa y nueve"

date_ymd

Normalizará la fecha de modo que el primer grupo de números sea el año, el segundo el mes y el tercero el día. Cuando el año es un número de dos dígitos, el motor lo lee como un número de dos dígitos. Si el año se representa con un número de cuatro dígitos, se representa como año de cuatro dígitos.

Por ejemplo:

<context id="date_ymd">99-12-21</context>

se normalizará a "veintiuno de diciembre del noventa y nueve"
o "veintiuno de diciembre de mil novecientos noventa y nueve"

<context id="date_ymd">1999.12.21</context>

se normalizará a "veintiuno de diciembre de mil novecientos noventa y nueve"

date_ym

Normalizará la fecha de modo que el primer grupo de números sea el año y el segundo el mes. Cuando el año es un número de dos dígitos, el motor lo lee como un número de dos dígitos. Si el año se representa con un número de cuatro dígitos, se representa como año de cuatro dígitos.

Por ejemplo:

<context id="date_ym">99-12</context>

se normalizará a "diciembre del noventa y nueve"
o "diciembre de mil novecientos noventa y nueve"

<context id="date_ym">1999.12</context>

se normalizará a "diciembre de mil novecientos noventa y nueve"

date_my

Normalizará la fecha de modo que el primer grupo de números sea el mes y el segundo el año. Cuando el año es un número de dos dígitos, el motor lo lee como un número de dos dígitos. Si el año se representa con un número de cuatro dígitos, se representa como año de cuatro dígitos.

Por ejemplo:

<context id="date_my">12/99</context>

se normalizará a "diciembre del noventa y nueve"
o "diciembre de mil novecientos noventa y nueve"

<context id="date_my">12/1999</context>

se normalizará a "diciembre de mil novecientos noventa y nueve"

date_dm

Normalizará la fecha de modo que el primer grupo de números sea el día y el segundo el mes.

Por ejemplo:

<context id="date_dm">21.12</context>

se normalizará a "veintiuno de diciembre"

date_md

Normalizará la fecha de modo que el primer grupo de números sea el mes y el segundo el día.

Por ejemplo:

<context id="date_md">12/21</context>

se normalizará a "veintiuno de diciembre"

date_year

Normalizará la fecha de modo que el número se lea como un año. Esta cadena no es necesaria en español ya que, de estar escrito un año con un número de cuatro dígitos, al leerlo en voz alta nunca se omite, a diferencia de lo que ocurre a veces en otros idiomas como el inglés, la referencia a la unidad de mil.

Por ejemplo:

<context id="date_year">1999</context>

se normalizará a "mil novecientos noventa y nueve" o, en inglés, a "nineteen ninety nine". Como puede observar, en inglés se omite pronunciar "one thousand" para referirse al mil.

<context id="date_year">2001</context>

se normalizará a "dos mil uno" o, en inglés, a "two thousand one"

chs_date_ymdhm

El texto que especifica la fecha se normaliza de modo que el primer grupo de números sea el año, el segundo el mes, el tercero el día, el cuarto la hora y el quinto el minuto. Cuando el año es un número de dos dígitos, el motor lo lee como un número de dos dígitos. Si el año se representa con un número de cuatro dígitos, se representa como año de cuatro dígitos. El formato del texto para la hora tiene que especificar la hora como un número entre 00 y 23 (en caso de que antes tenga PM/AM, entre 01 y 12) y el minuto como un número entre 01 y 59.

Esta etiqueta de contexto es específica para chino.

Time

Este contexto especifica que el número que se pasa al motor es una hora. Generalmente las horas tendrán el formato número [delimitador] número [delimitador] número o número [delimitador] número, donde el delimitador es ':' o ' ' ' o ' " ' y habitualmente los números van de 01 a 24 para horas, 01 a 59 para minutos y segundos.

Cuando los números entre 01 y 09 tienen un cero, el motor puede ignorarlo o normalizarlo como "cero". El motor puede colocar un "y" en la hora normalizada.

time

Por ejemplo:

<context id="time">12:30</context>

se normalizará a "doce treinta"

<context id="time">01:21</context>

se normaliza como "una veintiuno"
o "cero una veintiuno"

<context id="time">1'21"</context>

se normaliza como "un minuto veintiún segundos"
o "un minuto y veintiún segundos"

chs_time_hms

El texto que especifica la hora se normaliza de modo que el primer grupo de números es la hora, el segundo grupo el minuto y el tercer grupo el segundo.

Esta etiqueta de contexto es específica para motores en chino.

chs_time_hm

El texto que especifica la hora se normaliza de modo que el primer grupo de números es la hora y el segundo el minuto.

Esta etiqueta de contexto es específica para motores en chino.

Number

number_cardinal

El texto se normaliza como un número utilizando el formato regular de unidades, decenas, etc. El motor puede colocar "y" en el texto normalizado.

Por ejemplo:

<context id="number_cardinal">3432</context>

se normalizará a "tres mil cuatrocientos treinta y dos"

number_digit

El texto se normaliza dígito a dígito.

Por ejemplo:

<context id="number_digit">3432</context>

se normalizará a "tres cuatro tres dos"

number_fraction

El texto se normaliza como una fracción.

Por ejemplo:

<context id="number_fraction">3/15</context>

se normalizará a "tres quinceavos" o "tres sobre quince"

number_decimal

El texto se normaliza como un valor decimal.

Por ejemplo:

<context id="number_decimal">423,1243</context>

se normalizará a "cuatrocientos veintitrés coma uno dos cuatro tres"

phone_number

El texto se normaliza como un número de teléfono. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

currency

El texto se normaliza como una divisa. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

Por ejemplo:

<context id="currency">$34,90</context>

se normalizará a "treinta y cuatro dólares y noventa centavos". En el caso de voces optimizadas para países o regiones cuya moneda es el peso, el signo de dólares ($) se normalizará como "pesos".

chs_number_percentage

El texto se normaliza como un valor porcentual.

Esta etiqueta de contexto es específica para motores en chino.

chs_number_scientific

El texto se normaliza como un valor científico.

Esta etiqueta de contexto es específica para motores en chino.

chs_phone_postal

El número de teléfono (phone_number) y la dirección postal (address_postal) son casi lo mismo que number_cardinal; la única diferencia es que "1" se lee como "yao1".

Esta etiqueta de contexto es específica para motores en chino.

Web

El texto se normaliza como una URL. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

web_url

Por ejemplo:

<context id="web_url">www.Microsoft.com</context>

se normalizará a "w w w punto Microsoft punto com"

E-mail

El texto se normaliza como un correo electrónico. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

e-mail_address

El texto se normaliza como una dirección de correo electrónico. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

Por ejemplo:

<context id="e-mail_address">alguien@microsoft.com</context>

se normalizará a "alguien arroba Microsoft punto com"

Address

El texto se normaliza como una dirección. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

address

Por ejemplo:

<context id="address">One Microsoft Way, Redmond, WA, 98052</context>

se normalizará a "One Microsoft Way Redmond Washington nueve ocho cero cinco dos"

address_postal

El texto se normaliza como una dirección postal. La implementación exacta de esto se dejó a criterio de los desarrolladores de motores y quizá se defina en alguna versión futura de SAPI.

Por ejemplo:

<context id="address_postal">A2C 4X5</context>

se normalizará a "A 2 C 4 X 5"


Etiquetas universales

Se recomienda usar las etiquetas de control para SAPI 4 y las etiquetas XML para SAPI 5 y Microsoft Speech Platform. Pero además Balabolka admite sus propias etiquetas universales para modificar la síntesis de voz.

Audio

Balabolka permite insertar enlaces a archivos de audio externos (clips de audio) en el texto de los documentos. Utilice el elemento del menú principal "Texto | Clip de audio" para elegir el nombre de un archivo de audio. Formatos compatibles: WAV, MP3, OGG.

La etiqueta de clip de audio será algo como:

{{Audio=C:\Sonidos\timbre.wav}}

También se permiten rutas relativas a los clips de audio. Una ruta relativa es la ubicación de un archivo en relación con la del documento actual:

{{Audio=..\Mis sonidos\timbre.mp3}}

Al leer el texto en voz alta, Balabolka hará una pausa cuando se llegue a la etiqueta del clip de audio, reproducirá el clip de audio y reanudará la lectura. Al convertir a archivos de audio, el clip de audio se incorporará al archivo de audio creado por el programa.

Voz

Si mientras se lee en voz alta es necesario cambiar la voz o sus propiedades, para SAPI 5 y Microsoft Speech Platform puede emplearse una etiqueta especial (las voces SAPI 4 la ignorarán).

Formato de la etiqueta:

{{Voice=Nombre;Velocidad;Tono;Volumen}}

  • Nombre: el nombre de una voz (es suficiente con una palabra o parte de ésta);
  • Velocidad: la velocidad de la voz (los valores van de -10 a 10);
  • Tono: el tono de la voz (los valores van de -10 a 10);
  • Volumen: el volumen (los valores van de 0 a 100).

Una etiqueta se aplica a todo el texto que le siga. Los valores se separan mediante punto y comas. Por ejemplo:

Este texto lo leerá la voz de Balabolka predeterminada. {{Voice=Violeta;0;0;100}} La voz 'Violeta' leerá este otro texto.

El contenido de la etiqueta no distingue mayúsculas y minúsculas. Pueden omitirse los valores de algunas propiedades:

{{voice=jorge;;;50}}

{{Voice=Rosa;-1}}

{{Voice=Marta}}

Para volver a la voz predeterminada, use esta etiqueta:

{{Voice=}}

¡Advertencia! Es imposible cambiar entre voces SAPI 5 y de Microsoft Speech Platform.

Pausa

Puede insertarse en el archivo de audio de salida el número de milisegundos especificado de silencio. Por ejemplo:

Ciento veinte milisegundos de silencio {{Pause=120}} acabaron de pasar.


Alfabetos fonéticos

Un alfabeto fonético contiene combinaciones de letras, números y caracteres que se conocen como "fonemas". Un fonema representa un sonido discreto de un idioma hablado. Los fonemas se usan para crear deletreos fonéticos que determinan cómo se ha de pronunciar una palabra al leerla en voz alta. Los motores de voz son compatibles con tres alfabetos fonéticos:

  • Alfabeto Fonético Internacional (AFI, International Phonetic Alphabet, IPA)
  • Conjunto fonético de Speech API (SAPI Phone Set)
  • Conjunto fonético universal (Universal Phone Set, UPS)

El Alfabeto Fonético Internacional es un sistema de notación fonética basado principalmente en el alfabeto latino, ideado como representación estandarizada de los sonidos del idioma hablado. Puede utilizar este alfabeto fonético para especificar pronunciaciones en cualquier idioma.

Los primeros idiomas creados por Microsoft para texto a voz en equipos especificaban pronunciaciones de las palabras utilizando el Conjunto fonético de SAPI. Un fonema consta de uno o más caracteres de un alfabeto fonético que describen un sonido discreto en un idioma hablado. Los idiomas siguientes utilizan el Conjunto fonético de SAPI para describir sus sonidos: alemán, chino, español, francés, inglés y japonés.

Más recientemente Microsoft desarrolló el Conjunto fonético universal, un alfabeto fonético legible por máquinas basado en el Alfabeto Fonético Internacional. UPS es un alfabeto fonético más avanzado que el Conjunto fonético de SAPI, puede utilizarse para describir los sonidos de cualquier idioma nuevo y es más fácil de asimilarlo a otros alfabetos fonéticos legibles por máquinas como X-SAMPA, SAMPA o AFI ASCII.

El usuario crea la pronunciación utilizando la etiqueta XML PRON. Por ejemplo, aquí van dos deletreos fonéticos que puede usar un motor de voz para leer la palabra "hello" en inglés estadounidense:

<pron sym="h eh - l ow 1"/>

<pron sym="H EH S1 L O"/>

El primer ejemplo usa fonemas del Conjunto fonético de SAPI. El "1" es un símbolo de estrés que indica la sílaba que se debe acentuar. Los fonemas están delimitados por espacios y el "-" separa la palabra en sílabas. El segundo ejemplo usa fonemas del Conjunto fonético universal. Las letras indican los segmentos hablados que conforman la palabra. "S1" es un símbolo de estrés que indica la sílaba que se debe acentuar.

Las versiones actuales de las voces de IVONA no son compatibles con los fonemas de SAPI. La etiqueta PRON se ignora. Para proporcionar una pronunciación fonética del texto especificado, se recomienda utilizar la etiqueta del lenguaje de marcado de síntesis de voz (SSML).

<phoneme alphabet="ipa" ph="təˈmeɪtoʊ">tomato</phoneme>

La etiqueta PHONEME se puede abreviar:

<phoneme alphabet="ipa" ph="pəˈteɪtoʊ"/>

La etiqueta de SSML admite los alfabetos fonéticos siguientes:

  • Alfabeto Fonético Internacional (AFI)
  • Extended Speech Assessment Methods Phonetic Alphabet (X-SAMPA)

Introducir los símbolos del AFI desde el teclado es difícil. Balabolka permite elegir caracteres desde la lista de símbolos del AFI. Asimismo, la aplicación puede convertir palabras en símbolos del AFI. Las transcripciones fonéticas se admiten en estos idiomas:

  • Alemán
  • Español
  • Francés
  • Italiano
  • Polaco
  • Portugués
  • Ruso
  • Turco
  • Ucraniano

El texto debe escribirse en minúscula; las vocales en mayúscula pueden usarse para indicar el estrés primario en las palabras.


Conjunto fonético de SAPI

Conjunto fonético de SAPI (SAPI Phone Set)

Microsoft Speech API usa un alfabeto fonético para expresar la voz en fonemas. Un alfabeto fonético define todos los fonemas que se usan en un idioma, junto con sus propiedades y datos para su producción como sonidos. Los usuarios pueden crear pronunciaciones para palabras que no estén actualmente en el léxico utilizando los fonemas que se representan en las tablas siguientes. El conjunto de fonemas se compone de una representación fonética simbólica (SYM).

El usuario podrá introducir la representación SYM para crear la pronunciación utilizando la etiqueta XML PRON. Cada entrada de fonema debe estar separada por un espacio.

Ejemplo. Pronunciación para "hello":

<pron sym="h eh l ow"/>

Para mayor eficiencia, los marcadores de estrés primario (1) y secundario (2), y los separadores en sílabas (-) se pueden añadir a la pronunciación.

Ejemplo. Pronunciación para "hello" usando el estrés primario (1) y separación en sílabas (-):

<pron sym="h eh - l ow 1"/>

Seleccione un idioma de la lista siguiente para ver su alfabeto fonético más abajo:

  • Español
  • Alemán
  • Francés
  • Inglés
  • Italiano
  • Chino
  • Japonés

Fonemas en español

Símbolo de fonema | Ejemplo | Transcripción
1 | Estrés primario |
2 | Estrés secundario |
- | Separador en sílabas (guión) |
& | Separador de palabras |
! | Finalizador de frase (signo de cierre de admiración) |
, | Finalizador de frase (coma) |
. | Finalizador de frase (punto) |
? | Finalizador de frase (signo de cierre de interrogación) |
_ | Silencio (guión bajo) |
a | aquí | a k i 1
b | Brasil | b r a s i 1 l
ch | Chile | ch i 1 l e
d | grande | g r a 1 n d e
e | este | e 1 s t e
f | función | f u n s xi o 1 n
g | segundo | s e g u 1 n d o
i | identidad | i d e n t i d a 1 d
j | yo | j o 1
k | casa | k a 1 s a
l | los | l o 1 s
ll | llamada | ll a m a 1 d a
m | manos | m a 1 n o s
n | no | n o 1
nj | año | a 1 nj o
o | bueno | b xu e 1 n o
p | para | p a 1 r a
r | para | p a 1 r a
rr | radio | rr a 1 d xi o
s | solo | s o 1 l o
sh | Bush | b u 1 sh
t | importante | i m p o r t a 1 n t e
u | uno | u 1 n o
w | Hollywood | o 1 l i w u d
x | general | x e n e r a 1 l
xi | iogur | xi o g u 1 r
xu | puedo | p xu e 1 d o

Fonemas en alemán

Símbolo de fonema | Ejemplo | Transcripción
1 | Estrés primario |
2 | Estrés secundario |
- | Separador en sílabas (guión) |
& | Separador de palabras |
! | Finalizador de frase (signo de admiración) |
, | Finalizador de frase (coma) |
. | Finalizador de frase (punto) |
? | Finalizador de frase (signo de interrogación) |
_ | Silencio (guión bajo) |
a | Achtung | q a 1 x t uh ng
A | Name | n A 1 m ah
aan | Chance | sh aan 1 s ah
ah | bitte | b ih 1 t ah
ao | Hoffnung | h ao 1 f n uh ng
aon | Pompon | p aon 1 p aon 1
aw | Raum | rq aw 1 m
ay | Zeit | ts ay 1 t
b | besonders | b ah z ao 1 n d e@ s
c | China | c i 1 n A
ch | deutsch | d oy 1 ch
d | das | d a 1 s
e | mehr | m e 1 r
eh | Enkel | q eh 1 ng k el
EH | erklären | q eh r k l EH 1 rq en
ehn | Bassin | b a s ehn 1
el | Einzelnen | q ay 1 n ts el n en
em | einem | q ay 1 n em
en | einen | q ay 1 n en
er | Surfer | s er 1 f e@
ey | Display | d ih s p l ey 1
e@ | Kindern | k ih 1 n d e@ n
f | Fall | f a 1 l
g | glaube | g l aw 1 b ah
h | Haupt | h aw 1 p t
i | sieben | z i 1 b en
ih | immer | q ih 1 m e@
j | ja | j A 1
jh | Dschungel | jh uh 1 ng el
k | Kultur | k uh l t u 1 r
l | lieber | l i 1 b e@
m | mein | m ay 1 n
n | Name | n A 1 m ah
ng | Junge | j uh 1 ng ah
o | oder | q o 1 d e@
oe | öffnete | q oe 1 f n ah t ah
OE | Österreich | q OE 1 s t ah rq ay c
oen | Parfum | p a r f oen 1
oy | Europa | q oy rq o 1 p A
p | Parlament | p a r l a m eh 1 n t
pf | Pflicht | pf l ih 1 c t
q | aber | q A 1 b e@
r | Berliner | b eh r l i 1 n e@
rq | Runde | rq uh 1 n d ah
s | Szene | s ts e 1 n ah
sh | sprach | sh p rq A 1 x
t | tol | t ao 1 l
ts | Zimmer | ts ih 1 m e@
u | Uhren | q u 1 rq en
ue | hübsch | h ue 1 p sh
UE | über | q UE 1 b e@
uh | Schutz | sh uh 1 ts
v | wichtig | v ih 1 c t ih c
w | Mademoiselle | m a d ah m w a z eh 1 l
x | Buch | b u 1 x
z | selbst | z eh 1 l p s t
zh | Spionage | sh p i o n A 1 zh ah

Fonemas en francés

Símbolo de fonema | Ejemplo | Transcripción
1 | Estrés primario |
2 | Estrés secundario |
- | Separador en sílabas (guión) |
& | Separador de palabras |
! | Finalizador de frase (signo de admiración) |
, | Finalizador de frase (coma) |
. | Finalizador de frase (punto) |
? | Finalizador de frase (signo de interrogación) |
_ | Silencio (guión bajo) |
a | patte | p a 1 t
aan | abandon | a b aan d aon 1
ao | comme | k ao 1 m
aon | bon | b aon 1
ax | le | l ax 1
b | bouche | b u 1 sh
ch | charlie | ch a 1 r l i
d | dame | d a 1 m
dz | jeudi | j oe dz i 1
e | marché | m a r sh e 1
eh | chère | sh eh 1 r
ehn | main | m ehn 1
eo | feu | f eo 1
f | fille | f i 1 j
g | garde | g a 1 r d
i | libre | l i 1 b r
j | pierre | p j e 1 r
jh | George | jh ao 1 r jh
k | chique | sh i k
l | langage | l aan g a 1 zh
m | mois | m w a 1
n | nonne | n ao 1 n
ng | shopping | sh ao p i 1 ng
nj | campagne | k aan p a 1 nj
o | animaux | a n i m o 1
oe | leur | l oe 1 r
oen | parfum | p a r f oen 1
p | pile | p i 1 l
q | hacher | q a sh e 1
r | route | r u t
s | adresser | a d r e s e 1
sh | chaise | sh eh 1 z
t | technique | t eh k n i 1 k
ts | énergétique | e n eh r zh e ts i 1 k
u | doux | d u 1
ue | une | ue 1 n
uh | Bush | b uh 1 sh
v | vive | v i 1 v
w | boire | b w a 1 r
yw | huile | yw i 1 l
z | zone | z ao 1 n
zh | juste | zh ue 1 s t

Fonemas en inglés

Símbolo de fonema | Ejemplo | Transcripción
1 | Estrés primario |
2 | Estrés secundario |
- | Separador en sílabas (guión) |
& | Separador de palabras |
! | Finalizador de frase (signo de admiración) |
, | Finalizador de frase (coma) |
. | Finalizador de frase (punto) |
? | Finalizador de frase (signo de interrogación) |
_ | Silencio (guión bajo) |
aa | father | f aa 1 dh er
ae | cat | k ae 1 t
ah | but | b ah 1 t
ao | bought | b ao 1 t
aw | house | h aw 1 s
ax | about | ax b aw 1 t
ay | bite | b ay 1 t
b | book | b uh 1 k
ch | catch | k eh 1 ch
d | done | d ah 1 n
dh | breathe | b r i dh
eh | bet | b eh 1 t
er | bird | b er 1 d
ey | ate | ey 1 t
e@ | fairly | f e@ 1 l i
f | fog | f ao 1 g
g | good | g uh 1 d
h | hello | h eh l ow 1
ih | bit | b ih 1 t
iy | beat | b iy 1 t
i@ | here | h i@ 1
jh | jump | jh ah 1 mp
k | cat | k ae 1 t
l | lot | l aa 1 t
m | Mom | m aa 1 m
n | nod | n aa 1 d
ng | sing | s ih 1 ng
ow | boat | b ow 1 t
oy | boy | b oy 1
p | pot | p aa 1 t
r | rat | r ae 1 t
s | sit | s ih 1 t
sh | shut | sh ah 1 t
t | top | t aa 1 p
th | thick | th ih 1 k
uh | book | b uh 1 k
uw | boot | b uw 1 t
v | various | v eh 1 r i ih s
w | won | w ah 1 n
y | you | y uw 1
z | zoo | z uw 1
zh | casual | k ae 1 zh uw ah l

Fonemas en italiano

Símbolo de fonema | Ejemplo | Transcripción
1 | Estrés primario |
2 | Estrés secundario |
- | Separador en sílabas (guión) |
& | Separador de palabras |
! | Finalizador de frase (signo de admiración) |
, | Finalizador de frase (coma) |
. | Finalizador de frase (punto) |
? | Finalizador de frase (signo de interrogación) |
_ | Silencio (guión bajo) |
a | campo | k a 1 m p o
ao | nove | n ao 1 v e
b | barra | b a 1 rr a
ch | percento | p e r ch eh 1 n t o
d | mondo | m o 1 n d o
dz | zeta | dz eh 1 t a
e | venire | v e n i 1 r e
eh | lento | l eh 1 n t o
f | fine | f i 1 n e
g | gruppi | g r u 1 p i
i | si | s i
j | funzione | f u n ts j o 1 n e
jh | generazione | jh e n e r a ts j o 1 n e
k | economia | e k o n o m i 1 a
l | libri | l i 1 b r i
ll | gli | ll i
m | mai | m a 1 i
n | nord | n ao r d
nj | signor | s i 1 nj ao r
o | otto | ao 1 t t o
p | primo | p r i 1 m o
r | arrivederci | a rr i v e d e 1 r ch i
rr | arrivederci | a rr i v e d e 1 r ch i
s | sinistra | s i n i 1 s t r a
sh | scienza | sh eh 1 n ts a
t | tre | t r eh
ts | grazie | g r a 1 ts j e
u | punto | p u 1 n t o
v | venti | v e 1 n t i
w | Washington | w a 1 sh i ng t o n
z | svolta | z v o 1 l t a

Fonemas en chino

Símbolo de fonema | Ejemplo
- | Separador en sílabas (guión)
! | Finalizador de frase (signo de admiración)
& | Separador de palabras
, | Finalizador de frase (coma)
. | Finalizador de frase (punto)
? | Finalizador de frase (signo de interrogación)
_ | Silencio (guión bajo)
+ | Estrés primario
* | Estrés secundario
1 | Tono 1
2 | Tono 2
3 | Tono 3
4 | Tono 4
5 | Tono 5
a | a 1 fei 1 (pícaro)
ai | ai 4 ren 2 (amante)
an | an 1 quan 2 (seguro)
ang | ang 1 zang 1 (sucio)
ao | jiao 1 ao 4 (orgulloso)
ba | ba 4 ba 5 (papá)
bai | bai 2 se 4 (blanco)
ban | mu 4 ban 3 (tablero)
bang | bang 3 jia 4 (secuestrar)
bao | yong 1 bao 4 (abrazo)
bei | bei 3 fang 1 (Norte)
ben | ben 4 dan 4 (tonto)
beng | beng 4 tiao 4 (saltar)
bi | bi 2 zi 5 (nariz)
bian | bian 4 hua 5 (cambio)
biao | biao 3 ge 2 (mesa)
bie | li 2 bie 2 (separarse)
bin | bin 1 ke 4 (invitado)
bing | shi 4 bing 1 (soldado)
bo | bo 2 dou 4 (luchar)
bu | bu 4 xing 2 (caminar)
ca | ca 1 gan 1 (limpiar)
cai | cai 1 ce 4 (adivinar)
can | can 1 jia 1 (unir)
cang | cang 1 ying 5 (volar)
cao | cao 1 chang 3 (patio recreativo)
ce | ce 4 liang 2 (medida)
cen | cen 1 ci 1 (desigual)
ceng | ceng 2 jing 1 (una vez)
cha | jian 3 cha 2 (comprobar)
chai | chai 1 hui 3 (demoler)
chan | chan 3 ye 4 (industria)
chang | jing 1 chang 2 (frecuentemente)
chao | chao 1 yue 4 (exceder)
che | qi 4 che 1 (automóvil)
chen | chen 2 jiu 4 (viejo)
cheng | cheng 2 che 1 (paseo)
chi | chi 2 dao 4 (tarde para)
chong | chong 1 man 3 (lleno de)
chou | chou 2 hen 4 (odio)
chu | chu 2 fa 3 (división)
chuai | chuai 3 ce 4 (adivinanza)
chuan | lun 2 chuan 2 (ship)
chuang | chuang 4 ye 4 (tallar)
chui | tie 3 chui 2 (martillo)
chun | chun 1 tian 1 (primavera)
chuo | wo 4 chuo 4 (sucio)
ci | ci 2 qi 4 (porcelana)
cong | cong 2 lin 2 (tíket)
cou | jin 3 cou 4 (compacto)
cu | cu 4 xiao 1 (promoción de venta)
cuan | tao 2 cuan 4 (alejarse)
cui | cui 1 cu 4 (prensa)
cun | xiang 1 cun 1 (campo)
cuo | cuo 4 wu 4 (error)
da | da 4 (grande)
dai | dai 4 biao 3 (delegar)
dan | dan 4 shi 4 (pero)
dang | dang 1 ran 2 ([estar] seguro [de])
dao | dao 1 (cuchillo)
de | de 5 (palabra de función)
dei | dei 3 (deber)
den | den 4 (tirón)
deng | ban 3 deng 4 (taburete de madera)
di | di 2 que 4 (ciertamente)
dia | dia 3 (voz de coquetería)
dian | dian 3 (punto)
diao | diao 4 (colgar)
die | die 1 dao 3 (rodar)
ding | jue 2 ding 4 (decidir)
diu | diu 1 qi 4 (descartar)
dong | dong 1 fang 1 (Este)
dou | zhan 4 dou 4 (machacarse)
du | du 4 jue 2 (detenerse)
duan | duan 3 (corto)
dui | dui 4 (derecha)
dun | ting 2 dun 4 (detención)
duo | duo 1 yu 2 (innecesario)
e | e 4 (hambre)
ei | ei 4 (sí)
en | en 1 hui 4 (favor)
er | er 3 (oír)
fa | fa 1 zhan 3 (desarrollo)
fan | fan 4 (arroz)
fang | fang 2 jian 1 (habitación)
fei | fei 1 (volar)
fen | fen 1 bie 2 (separar)
feng | feng 1 (viento)
fo | fo 2 (Buda)
fou | fou 3 ding 4 (denegación)
fu | fu 4 qin 1 (padre)
ga | gan 1 ga 4 (torpe)
gai | ying 1 gai 1 (debería)
gan | gan 1 jing 4 (pulcritud)
gang | gang 1 cai 2 (acabar de)
gao | gao 1 (alto)
ge | pin 3 ge 2 (carácter)
gei | gei 3 yu 3 (dar)
gen | gen 1 (raíz)
geng | geng 4 jia 1 (mucho más)
gong | gong 1 ren 2 (obrero)
gou | zu 2 gou 4 (suficiente)
gu | gu 4 xiang 1 (pueblo natal)
gua | xi 1 gua 1 (sandía)
guai | qi 2 guai 4 (rareza)
guan | guan 1 bi 4 (cerrar)
guang | guang 1 (luz)
gui | gui 3 (fantasma)
gun | gun 4 (palo)
guo | guo 4 qu 4 (pasado)
ha | ha 1 (sonido de risa)
hai | hai 2 zi 5 (niño)
han | chu 1 han 4 (sudar)
hang | hang 2 xing 2 (vela)
hao | hao 3 (bueno)
he | he 2 (río)
hei | hei 1 (negro)
hen | hen 3 (muy)
heng | heng 2 xiang 4 (orientación horizontal)
hong | hong 2 (rojo)
hou | hou 2 zi 5 (mono)
hu | hu 2 xu 1 (barba)
hua | hua 4 (foto)
huai | huai 4 (malo)
huan | huan 2 jing 4 (entorno)
huang | huang 2 se 4 (amarillo)
hui | hui 1 huang 2 (refulgencia)
hun | hun 2 zhuo 2 (fangoso)
huo | huo 3 (fuego)
ji | ji 2 shi 2 (a tiempo)
jia | jia 4 qi 1 (vacacionar)
jian | jian 3 dan 1 (simple)
jiang | jiang 1 (río)
jiao | jiao 1 tong 1 (tráfico)
jie | jie 2 ri 4 (banquete)
jin | jin 3 zhang 1 (tensión)
jing | gan 1 jing 4 (pulcritud)
jiong | jiong 3 po 4 (avergonzado)
jiu | jiu 3 (nueve)
ju | ju 4 zi 5 (frase)
juan | juan 3 qu 1 (rizo)
jue | jue 2 ding 4 (decidir)
jun | jun 1 dui 4 (armada)
ka | ka 3 che 1 (camión)
kai | kai 3 xuan 2 (triunfo)
kan | kan 4 (ver)
kang | di 3 kang 4 (resistir)
kao | kao 3 shi 4 (probar)
ke | ke 3 (treinta)
kei | kei 1 (regaño)
ken | ken 3 ding 4 (afirmar)
keng | keng 1 hai 4 (entrampar)
kong | kong 1 qi 4 (aire)
kou | kou 3 (boca)
ku | jian 1 ku 3 (prueba)
kua | kua 1 jiang 3 (alabar)
kuai | kuai 4 (rápido)
kuan | kuan 1 kuo 4 (apertura)
kuang | kong 1 kuang 4 (vacío)
kui | kui 1 qian 4 (deber)
kun | kun 4 nan 2 (difícil)
kuo | kuo 4 da 4 (agrandar)
la | la 4 jiao 1 (guindilla)
lai | lai 2 (ven)
lan | lan 2 se 4 (azul)
lang | lang 2 (lobo)
lao | lao 3 (antiguo)
le | kuai 4 le 4 (feliz)
lei | lei 2 (trueno)
leng | leng 3 ku 4 (siderometalurgia)
li | li 2 (pera)
lia | lia 2 (dos)
lian | lian 3 (cara)
liang | li 4 liang 4 (energía)
liao | zuo 2 liao 4 (condimento)
lie | lin 3 lie 4 (severo)
lin | lin 3 lie 4 (severo)
ling | ling 2 mu 4 (mausoleo)
liu | liu 2 dong 4 (flujo)
lo | lo 5 (palabra de función)
long | long 2 (dragón)
lou | lou 4 (filtración)
lu | lu 4 di 4 (aterrizar)
luan | hun 4 luan 4 (caos)
lue | ce 4 lue 4 (táctica)
lun | yi 4 lun 4 (discutir)
luo | xia 4 luo 4 (paradero)
lv | lv 4 se 4 (verde)
ma | ma 3 (caballo)
mai | mai 2 zang 4 (enterrar)
man | man 3 zu 2 (satisfacer)
mang | cong 1 mang 2 (prisa)
mao | mao 1 (gato)
me | shen 2 me 5 (qué)
mei | mei 2 you 3 (no)
men | wo 3 men 2 (nosotros)
meng | meng 4 (sueño)
mi | hun 1 mi 2 (coma)
mian | mian 4 ji 5 (área)
miao | miao 4 (templo)
mie | mie 4 jue 2 (aniquilación)
min | ren 2 min 2 (gente)
ming | ming 2 bai 2 (limpieza)
miu | huang 1 miu 4 (absurdo)
mo | mo 4 shui 3 (tinta)
mou | mou 2 lue 4 (truco)
mu | mu 4 biao 1 (destino)
na | na 4 li 3 (allí)
nai | nai 3 nai 5 (abuela)
nan | nan 2 fang 1 (Sur)
nang | nang 2 kuo 4 (incluir)
nao | re 4 nao 4 (vivacidad)
ne | mu 4 ne 4 (entumecido)
nei | nei 4 bu 4 (dentro)
nen | nen 4 lv 4 (luz verde)
neng | neng 2 gou 4 (ser capaz de)
ni | ni 3 (usted)
nian | nian 2 (año)
niang | gu 1 niang 5 (chica)
niao | niao 3 (pájaro)
nie | nie 4 (morder)
nin | nin 2 (usted)
ning | an 1 ning 2 (paz)
niu | niu 2 (toro)
nong | nong 2 min 2 (granjero)
nou | nou 4 (deshierbe)
nu | nu 3 li 4 (intentarlo con todas sus fuerzas)
nuan | wen 1 nuan 3 (caliente)
nue | nue 4 dai 4 (abusar)
nuo | nuo 4 yan 2 (promesa)
nv | nv 3 zi 3 (mujer)
o | o 5 (palabra de función)
ou | ou 1 yang 2 (nombre chino)
pa | hai 4 pa 4 (asustar)
pai | pai 4 qian 3 (enviar)
pan | pan 4 tu 2 (traidor)
pang | pang 2 da 4 (enorme)
pao | pao 3 (correr)
pei | pei 2 ban 4 (acompañar)
pen | pen 2 di 4 (alimento)
peng | peng 2 pai 4 (oleada)
pi | pi 2 fu 1 (piel)
pian | qi 1 pian 4 (trampa)
piao | piao 4 liang 4 (lindo)
pie | pie 1 kai 1 (hacer a un lado)
pin | pin 2 fan 2 (frecuencia)
ping | ping 2 zi 5 (botella)
po | po 4 huai 4 (daño)
pou | pou 2 (sostener algo con la mano ahuecada)
pu | pu 2 tao 5 (uva)
qi | qi 3 qiu 2 (mendigar)
qia | qia 4 dang 4 (apropiado)
qian | qian 1 xu 1 (humildad)
qiang | qiang 2 da 4 (poderoso)
qiao | qiao 3 miao 4 (artificio)
qie | xiu 1 qie 4 (reflejo)
qin | qin 1 zi 4 (uno mismo)
qing | qing 1 song 1 (fácil)
qiong | qiong 2 (pubertad)
qiu | qiu 2 fan 4 (prisionero)
qu | qu 1 dong 4 (conducir)
quan | quan 2 bu 4 (todo)
que | que 4 ding 4 (asegurar)
qun | qun 2 zhong 4 (multitud)
ran | ran 2 hou 4 (ellos)
rang | tu 3 rang 3 (suelo)
rao | wei 2 rao 4 (envolvente)
re | re 4 (calor)
ren | ren 2 lei 4 (ser humano)
reng | reng 2 ran 2 (todo lo mismo)
ri | ri 4 chu 1 (amanecer)
rong | rong 2 yao 4 (gloria)
rou | niu 2 rou 4 (carne vacuna)
ru | ru 2 guo 3 (si)
ruan | rou 2 ruan 3 (suave)
rui | rui 4 zhi 4 (inteligente)
run | shi 1 run 4 (humedad)
ruo | ruo 4 xiao 3 (pequeñez)
sa | sa 1 (tres)
sai | bi 3 sai 4 (competir)
san | fen 1 san 4 (disperso)
sang | sang 4 (morir)
sao | da 3 sao 3 (barrer)
se | yan 2 se 4 (color)
sen | sen 1 lin 2 (bosque)
seng | seng 1 lv 3 (monje)
sha | sha 1 chang 3 (campo de batalla)
shai | ri 4 shai 4 (exponerse al sol)
shan | shan 4 liang 2 (bondad)
shang | shang 4 mian 4 (superior)
shao | shao 4 nian 2 (juventud)
she | she 2 (serpiente)
shei | shei 2 (quien)
shen | shen 2 me 5 (que)
sheng | sheng 1 yin 1 (voz)
shi | shi 4 fei 1 (disputa)
shou | shou 3 (mano)
shu | shu 4 mu 4 (árbol)
shua | shua 1 zi 5 (cepillo)
shuai | shuai 1 da 3 (latido)
shuan | men 2 shuan 1 (pestillo)
shuang | shuang 1 (par)
shui | shui 3 (agua)
shun | shun 4 li 4 (todo bien)
shuo | shuo 1 (decir)
si | si 4 (cuatro)
song | song 4 bie 2 (despachar)
sou | sou 1 cha 2 (buscar)
su | su 4 du 4 (velocidad)
suan | suan 4 fa 3 (aritmética)
sui | sui 1 ran 2 (pensamiento)
sun | sun 3 shi 1 (pérdida)
suo | suo 3 yi 3 (así pues)
ta | ta 1 men 2 (ellos)
tai | tai 4 (demasiado)
tan | tan 2 hua 4 (hablar)
tang | tang 2 (azúcar)
tao | tao 2 pao 3 (huir)
te | te 4 bie 2 (especial)
tei | tei 1 (muy)
teng | ben 1 teng 2 (alboroto)
ti | ti 1 zi 5 (escalera)
tian | tian 1 (cielo)
tiao | tiao 4 yue 4 (saltar)
tie | tie 3 (hierro)
ting | ting 1 (escuchar)
tong | tong 3 yi 1 (unificar)
tou | tou 2 (cabeza)
tu | tu 3 di 4 (tierrah)
tuan | tuan 2 jie 2 (solidificar)
tui | tui 1 dong 4 (empujar)
tun | tun 2 ji 1 (almacenar)
tuo | tuo 1 yi 1 (desvestir)
wa | qing 1 wa 1 (rana)
wai | wai 4 mian 4 (fuera)
wan | wan 4 (diez mil)
wang | si 3 wang 2 (muerte)
wei | wei 3 da 4 (estupendo)
wen | wen 2 hua 4 (cultura)
weng | lao 3 weng 1 (anciano)
wo | wo 3 (yo)
wu | wu 2 lun 4 (no importa qué)
xi | xi 1 fang 1 (Oeste)
xia | xia 4 mian 4 (inferior)
xian | xian 4 zai 4 (ahora)
xiang | xiang 4 (gustar)
xiao | xiao 3 (pequeño)
xie | xie 3 (escribir)
xin | xin 1 (nuevo)
xing | xing 2 dong 4 (actuar)
xiong | xiong 2 (oso)
xiu | xiu 1 xi 5 (romper)
xu | xu 1 yao 4 (necesitar)
xuan | xuan 1 bu 4 (declarar)
xue | xue 3 (nieve)
xun | xun 2 wen 4 (pedir)
ya | ya 4 zhou 1 (Asia)
yan | yan 4 zi 5 (golondrina)
yang | tai 4 yang 2 (sol)
yao | yao 1 qiu 2 (requerir)
ye | ye 2 ye 5 (abuelo)
yi | yi 1 (uno)
yin | yin 1 yue 4 (música)
ying | ying 1 gai 1 (debería)
yo | yo 5 (palabra de función)
yong | yong 3 yuan 3 (para siempre)
you | you 2 yu 2 (debido a)
yu | yu 2 (pez)
yuan | yuan 2 lai 2 (anteriormente)
yue | yue 4 (mes)
yun | yun 2 (nube)
za | za 2 luan 4 (desorden)
zai | zai 4 jian 4 (despedida)
zan | zan 2 men 5 (nuestro)
zang | ang 1 zang 1 (sucio)
zao | zao 3 chen 2 (la mañana)
ze | ze 2 ren 4 (respuesta)
zei | zei 2 (ladrón)
zen | zan 4 yang 2 (alabanza)
zeng | zeng 1 jia 1 (añadir)
zha | zha 4 dan 4 (bomba)
zhai | qian 4 zhai 4 (deber)
zhan | zhan 4 li 4 (espera)
zhang | zhang 1 kai 1 (abrir)
zhao | zhao 1 huan 4 (convocar)
zhe | zhe 4 li 3 (aquí)
zhei | zhei 5 (esto)
zhen | zhen 1 zheng 4 (real)
zheng | zheng 4 yi 4 (justicia)
zhi | yi 4 zhi 4 (contener)
zhong | zhong 1 guo 2 (China)
zhou | si 4 zhou 1 (alrededor)
zhu | zhu 1 (cerdo)
zhua | zhua 1 (recoger)
zhuai | zhuai 4 (tirar de)
zhuan | zhuan 1 (ladrillo)
zhuang | zhuang 1 (pretender)
zhui | zhui 1 (perseguir)
zhun | zhun 3 (preciso)
zhuo | zhuo 1 (mesa)
zi | zi 4 (carácter)
zong | zong 3 (total)
zou | zou 3 (caminar)
zu | zu 1 (rentar)
zuan | zuan 4 (diamante)
zui | zui 4 (la mayoría)
zun | zun 1 (respeto)
zuo | zuo 4 (sentarse)

Fonemas en japonés (katakana)

Símbolo | Fonético | Unicode | Comentarios
' |  | U+0027 | Posición de acento
+ |  | U+002B | Separador de acentos
| |  | U+007C | Separador de frases
. |  | U+002E | Final de la frase (estándar)
? |  | U+003F | Final de frase (interrogativa)
! |  | U+0021 | Final de frase (admiración)
_ |  | U+005F | Una pausa mora
゜ |  | U+309C | Sonido vocalizado a medias
ァ | a | U+30A1 | Modificador
ア | a | U+30A2 |
ィ | i | U+30A3 | Modificador
イ | i | U+30A4 |
ゥ | u | U+30A5 |
ウ | u | U+30A6 |
ェ | e | U+30A7 | Modificador
エ | e | U+30A8 |
ォ | o | U+30A9 | Modificador
オ | o | U+30AA |
カ | ka | U+30AB |
ガ | ga | U+30AC |
キ | ki | U+30AD |
ギ | gi | U+30AE |
ク | ku | U+30AF |
グ | gu | U+30B0 |
ケ | ke | U+30B1 |
ゲ | ge | U+30B2 |
コ | ko | U+30B3 |
ゴ | go | U+30B4 |
サ | sa | U+30B5 |
ザ | za | U+30B6 |
シ | shi | U+30B7 |
ジ | ji | U+30B8 |
ス | su | U+30B9 |
ズ | zu | U+30BA |
セ | se | U+30BB |
ゼ | ze | U+30BC |
ソ | so | U+30BD |
ゾ | zo | U+30BE |
タ | ta | U+30BF |
ダ | da | U+30C0 |
チ | chi | U+30C1 |
ヂ | di | U+30C2 | Desfasado - use 30B8
ッ | q | U+30C3 |
ツ | tsu | U+30C4 |
ヅ | du | U+30C5 | Desfasado - use 30BA
テ | te | U+30C6 |
デ | de | U+30C7 |
ト | to | U+30C8 |
ド | do | U+30C9 |
ナ | na | U+30CA |
ニ | ni | U+30CB |
ヌ | nu | U+30CC |
ネ | ne | U+30CD |
ノ | no | U+30CE |
ハ | ha | U+30CF |
バ | ba | U+30D0 |
パ | pa | U+30D1 |
ヒ | hi | U+30D2 |
ビ | bi | U+30D3 |
ピ | pi | U+30D4 |
フ | hu | U+30D5 |
ブ | bu | U+30D6 |
プ | pu | U+30D7 |
ヘ | he | U+30D8 |
ベ | be | U+30D9 |
ペ | pe | U+30DA |
ホ | ho | U+30DB |
ボ | bo | U+30DC |
ポ | po | U+30DD |
マ | ma | U+30DE |
ミ | mi | U+30DF |
ム | mu | U+30E0 |
メ | me | U+30E1 |
モ | mo | U+30E2 |
ャ | ya | U+30E3 | Modificador
ヤ | ya | U+30E4 |
ュ | yu | U+30E5 | Modificador
ユ | yu | U+30E6 |
ョ | yo | U+30E7 | Modificador
ヨ | yo | U+30E8 |
ラ | ra | U+30E9 |
リ | ri | U+30EA |
ル | ru | U+30EB |
レ | re | U+30EC |
ロ | ro | U+30ED |
ヮ | wa | U+30EE | Modificador
ワ | wa | U+30EF |
ヰ | wi | U+30F0 | Desfasado - use 30A4
ヱ | we | U+30F1 | Desfasado - use 30A8
ヲ | wo | U+30F2 |
ン | nn | U+30F3 |
ヴ | vu | U+30F4 |
ヵ | ka | U+30F5 |
ヶ | ke | U+30F6 |
ヷ | va | U+30F7 |
ヸ | vi | U+30F8 |
ヹ | ve | U+30F9 |
ヺ | vo | U+30FA |
・ |  | U+30FB | Punto centrado
ー |  | U+30FC | Sonido prolongado
ヽ |  | U+30FD | Iteración
ヾ |  | U+30FE | Iteración vocalizada


Conjunto fonético universal

Conjunto fonético universal (Universal Phone Set)

The Speech API (SAPI) Universal Phone Set (UPS) is a machine-readable phone set that is based on the International Phonetic Alphabet (IPA).

UPS Design Principles

The following design principles were used to select SAPI labels and phone IDs for UPS.

  1. UPS covers the IPA 1993 Unicode character set, plus some extra SAPI phones including some suprasegmental labels that are used in speech synthesis markup but are not found in IPA.
    • In most cases there is a one-to-one mapping between UPS and IPA. In these cases, the SAPI Phone ID can simply use the IPA hex Unicode value.
    • In some cases UPS is a superset of IPA. For example, UPS includes some unique phone labels for commonly used sounds such as diphthongs and nasalized vowels, which the IPA treats as compounds. These compounds are represented using the compounding symbol "+". This symbol is treated just like any other phone, and so must be space delimited in a lexicon: the compound of A and B is written A + B, not AB or A+B. The SAPI Phone IDs of such compounds are formed from the sequence of phone IDs making up the compound.
  2. UPS pronunciations consist of a string of UPS phones, each separated by whitespace. SAPI makes no distinction between segmental phones and diacritics, suprasegmentals, and tones, and so these must also be separated by whitespace like any other SAPI phone.
  3. The UPS phone labels are not restricted to use the SAPI phone labels from US English, Spanish, French, German, Japanese, or Chinese; however, where possible, existing SAPI labels were re-used. Two sets of guidelines were used in creating the phone label names:
    • The UPS phone set reflects orthography where possible but is not biased too heavily towards English.
    • Phone labels adhere to labeling conventions that apply across phonetic classes (e.g., lax vowels use the character 'H' as in 'IH', 'UH' and 'AH').
  4. The UPS phone set is case-sensitive. UPS phone labels are all defined using ASCII character strings.
    • Segmental phones (Consonants, Vowels, Clicks and Ejectives) are represented by upper-case alphabetic symbols. These may vary in length from one to three characters. In general, shorter symbols are used for more frequent phones.
    • Diacritics are represented by three-character, lower-case, alphabetic symbols.
    • Suprasegmentals and Tones may vary in length and contain non-alphabetic characters.

The Universal Phone Set should be used for all Microsoft-supported languages except the seven languages currently supported by SAPI: Chinese, English (United States), French, German, Italian, Japanese, Spanish.

Compound Tying Symbol

UPS provides unique phone labels for common compound sounds such as affricates and nasal vowels. However, less frequent compound sounds may also exist in some languages and need to be represented in SAPI lexicons. The Universal Phone Set provides a compounding or tying symbol “+” that can be used to describe composite sounds from any two phones.

The German affricate "PF", diphthong "AI", and nasal vowel "AN" exist as unique phones in UPS. However, they could also be represented as compounds. The following example shows that "PF" and "P + F" are equivalent and are distinct from the phone sequence "P F".

Unique Phone | Compound
PF | P + F
AI | A + I

The nasal vowel "AN" can be described as the "A" vowel with a nasal diacritic. All diacritics must follow a segmental phone, so "A nas" and "A + nas" are equivalent. The former is preferred, though SAPI does not enforce any particular use of "+" or diacritics.

Unique Phone | Compound
AN | A nas
AN | A + nas

Consonants

This is a listing and cross reference of the consonant phones that are used by the three phonetic alphabets.

UPS Consonant Labeling Conventions

Consonant symbols are one, two, or three characters in length. Single character labels are used for highly frequent, language-universal consonants. In general the first character signifies place plus voicing, and the second signifies manner. Labeling conventions carry across phonetic classes in the following ways:

Conventions for place of articulation and voicing labeling:

  • Dentals and alveloars use D for voiced and T for voiceless
  • Alveolars use N for nasal and R for approximant
  • Labiodentals use V for voiced and F for voiceless
  • Velars use G for voiced and K for voiceless, NG for nasal
  • Bilabials use B for voiced and P for voiceless stops, M for nasal
  • Laterals use L
  • Uvulars use Q
  • Pharyngeals use H
  • Palatals use X for voiceless and Y for voiced

Conventions for manner of articulation labeling:

  • Single-character labels have manner encapsulated in choice of symbol: for example, M is nasal
  • Trills double up the first symbol
  • Fricatives use H
  • Approximants use X
  • Retroflex uses R

Consonant Tables

There are two tables, each listing a different category of consonant phones:

  • Consonants
  • Affricates

The table columns contain the following information:

  • UPS. The phone label specified in Microsoft’s Universal Phone Set (UPS).
  • IPA. The phone label specified in the International Phonetic Alphabet (IPA) phone set.
  • Unicode. The Unicode value from the IPA phone set.
  • IPA Description. This column describes the features of the phone, such as place of articulation, manner of articulation, phonation type, and airstream mechanism.
  • ASCII-IPA. The equivalent phone in ASCII-IPA phone set for reference.
  • X-SAMPA. The equivalent phone in X-SAMPA for reference.
  • Example. A word that uses the phone and illustrates its sound.
  • Language. The language of the example word.

Consonant Phones

Consonants are speech sounds that are articulated with complete (voiceless) or partial closure of the vocal tract.

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA | Example | Language
P | p | U+0070 | {blb,stp,vls} | p | p | put | English
B | b | U+0062 | {blb,stp,vcd} | b | b | big | English
M | m | U+006D | {blb,nas} | m | m | mat | English
BB | ʙ | U+0299 | {blb,trl,vcd} | B<trl> | B\ |  |
PH | ɸ | U+0278 | {blb,frc,vls} | P | p\ |  |
BH | β | U+03B2 | {blb,frc,vcd} | B | B | kabra | Spanish
MF | ɱ | U+0271 | {lbd,nas} | M | F |  |
F | f | U+0066 | {lbd,frc,vls} | f | f | fork | English
V | v | U+0076 | {lbd,frc,vcd} | v | v | vat | English
VA | ʋ | U+028B | {lbd,apr,vcd} | r<lbd> | v\ |  |
TH | θ | U+03B8 | {dnt,frc,vls} | T | T | thin | English
DH | ð | U+00F0 | {dnt,frc,vcd} | D | D | then | English
T | t | U+0074 | {alv,stp,vls} | t | t | talk | English
D | d | U+0064 | {alv,stp,vcd} | d | d | dig | English
N | n | U+006E | {alv,nas} | N | n | no | English
RR | r | U+0072 | {alv,trl,vcd} | r<trl> | r | torre, rojo | Spanish
DX | ɾ | U+027E | {alv,flp,vcd} | * | 4 | butter | US English
S | s | U+0073 | {alv,frc,vls} | s | s | sit | US English
Z | z | U+007A | {alv,frc,vcd} | z | z | zap | US English
LSH | ɬ | U+026C | {alv,lat,frc,vls} |  | K |  |
LH | ɮ | U+026E | {alv,lat,frc,vcd} | z<lat> | K\ | caballo | Spanish/Zulu
RA | ɹ | U+0279 | {alv,apr} | r | r\ | puro | Spanish
L | l | U+006C | {alv,lat,apr,vcd} | l | l | lid | US English
L vel | ɫ | U+026B | {alv,lat,apr,vcd} vel |  | 5 |  |
SH | ʃ | U+0283 | {pla,frc,vls} | S | S | she | US English
SH pal | ʆ | U+0286 | {pla,frc,vls} pal |  |  |  |
ZH | ʒ | U+0292 | {pla,frc,vcd} | Z | Z | pleasure | US English
ZH pal | ʓ | U+0293 | {pla,frc,vcd} pal |  |  |  |
TR | ʈ | U+0288 | {rfx,stp,vls} | t. | t` |  |
DR | ɖ | U+0256 | {rfx,stp,vcd} | d. | d` |  |
NR | ɳ | U+0273 | {rfx,nas,vcd} | n. | n` |  |
DXR | ɽ | U+027D | {rfx,flp,vcd} | *. | r` |  |
SR | ʂ | U+0282 | {rfx,frc,vls} | s. | s` |  |
ZR | ʐ | U+0290 | {rfx,frc,vcd} | z. | z` |  |
R | ɻ | U+027B | {rfx,apr,vcd} | r. | r\` | red | US English
LR | ɭ | U+026D | {rfx,lat,vcd} | l. | l` |  |
RR rho | ɼ | U+027C | {rfx,trl} |  |  |  |
CT | c | U+0063 | {pal,stp,vls} | c | c |  |
JD | ɟ | U+025F | {pal,stp,vcd} | J | J\ |  |
NJ | ɲ | U+0272 | {pal,nas,vcd} | J |  | oignon | French
C | ç | U+00E7 | {pal,frc,vls} | C | C | sicher | German
CJ | ʝ | U+029D | {pal,frc,vcd} | C<vcd> | j\ |  |
J | j | U+006A | {pal,apr,vcd} | j | j | yard | US English
LJ | ʎ | U+028E | {pal,lat,apr,vcd} | l^ | L | gli | Italian
W | w | U+0077 | {lbv,apr,vcd} | w | w | with | US English
K | k | U+006B | {vel,stp,vls} | k | k | cut | US English
G | g | U+0067 | {vel,stp,vcd} | g | g | gut | US English
NG | ŋ | U+014B | {vel,nas} | N | N | sing | US English
X | x | U+0078 | {vel,frc,vls} | x | x | mujer | Spanish
GH | ɣ | U+0263 | {vel,frc,vcd} | Q | G | luego | Spanish
GA | ɰ | U+0270 | {vel,apr,vcd} | j<vel> | M\ |  |
GL | ʟ | U+029F | {vel,lat,vcd} | L | L\ |  |
QT | q | U+0071 | {uvl,stp,vls} | q | q |  |
QD | ɢ | U+0262 | {uvl,stp,vcd} | G | G\ |  |
QN | ɴ | U+0274 | {uvl,nas,vcd} | n" | N\ |  |
QQ | ʀ | U+0280 | {uvl,trl,vcd} | - | R\ |  |
QH | χ | U+03C7 | {uvl,frc,vls} | X | X |  |
RH | ʁ | U+0281 | {uvl,frc,vcd} | g" | R | rond | French
HH | ħ | U+0127 | {phr,frc,vls} | H | X\ |  |
HG | ʕ | U+0295 | {phr,frc,vcd} | H<vcd> | ?\ |  |
GT | ʔ | U+0294 | {glt,stp,vls} | ? | ? |  |
H | h | U+0068 | {glt,frc,vls} | h | h | help | US English
WJ | ɥ | U+0265 | {lbp,apr,vcd} | j<rnd> | H | huit;juin | French

Affricates

Affricates are consonants that begin as stops but release as a fricative.

The SAPI UPS includes explicit phones for the most frequent affricates in the highest priority languages. The IPA Unicode specification includes some of these phones, though not all of them.

The table shows the constituent phones (UPS Compound) that were combined to create the resulting explicit phone (UPS).

UPS | UPS Compound | IPA | Unicode | IPA Description | Example | Language
PF | P + F | p.f |  | {lbd,aff,vls} | Pfahl | German
TS | T + S | t.s / ʦ | U+02A6 | {den,aff,vls} | Zahl | German
CH | T + SH | t.ʃ / ʧ | U+02A7 | {pla,aff,vls} | chin | English
JH | D + ZH | d.ʒ / ʤ | U+02A4 | {pla,aff,vcd} | joy | English
JJ | J + J | j.j |  | {pal,aff,vcd} | hielo | Spanish
DZ | D + Z | d.z / ʣ | U+02A3 | {den,aff,vcd} | zona | Italian
CC | T + SC | t.ɕ / ʨ | U+02A8 | {pla,aff,vls} |  | Mandarin
TSR | T + SR | t.ʂ |  | {rfx,aff,vls} |  | Mandarin
JC | D + ZC | d.ʑ / ʥ | U+02A5 | {pla,aff,vcd} |  |

Many other affricates or compound consonants exist and may be required by other languages. For example, there are about 20 Italian geminate consonants (doubled consonants). UPS does not include dedicated phones for these, but allows them to be defined using the + symbol, or the length diacritic 'lng' in the case of geminates.

Vowels

This is a listing and cross reference of the vowel phones that are used by the three phonetic alphabets.

UPS Labeling Conventions for Vowels

The UPS labeling conventions for vowels were designed to make the phones more intuitive and maintain phonetic similarity across each class. The labels follow these conventions:

  • Cardinal or main vowels use single character labels
  • Non-cardinal vowels and common diphthongs use two characters
  • Maximum label length is three characters
  • Centralized vowel labels use X, as in AX, IX, UX
  • Checked vowel (usually must be followed by a consonant in a stressed syllable) labels use H, as in IH, UH
  • U or O signifies lip rounding, as in AU, AO, EU

Vowel Tables

There are four tables, each listing a different category of vowel phones:

  • Monophthong
  • Diphthong
  • German Diphthong
  • Nasal

Monophthong Vowel Phones

Monophthong (literally "one sound" or "one tone") vowels are those whose articulation at both beginning and end is relatively fixed, and which does not glide up or down towards a new position of articulation.

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA | Example | Language
I | i | U+0069 | {hgh,fnt,unr,vwl} | I | i | feel | English
Y | y | U+0079 | {hgh,fnt,rnd,vwl} | Y | y | du | French
IX | ɨ | U+0268 | {hgh,cnt,unr,vwl} | i" | I\ |  |
YX | ʉ | U+0289 | {hgh,cnt,rnd,vwl} | U" | } |  |
UU | ɯ | U+026F | {hgh,bck,unr,vwl} | u- | M |  |
U | u | U+0075 | {hgh,bck,rnd,vwl} | u | u | too | English
IH | ɪ | U+026A | {smh,fnt,unr,vwl} | I | I | fill | English
YH | ʏ | U+028F | {smh,fnt,rnd,vwl} | I. | Y | hübsch | German
UH | ʊ | U+028ª | {smh,bck,rnd,vwl} | U | U | book | English
E | e | U+0065 | {umd,fnt,urd,vwl} | e | e | ses | French
EU | ø | U+00F8 | {umd,fnt,rnd,vwl} | Y | 2 | blöd | German
EX | ɘ | U+0258 | {umd,cnt,urd,vwl} | @<umd> | @\ |  |
OX | ɵ | U+0275 | {umd,cnt,rnd,vwl} |  | 8 |  |
OU | ɤ | U+0264 | {umd,bck,urd,vwl} | o- | 7 |  |
O | o | U+006F | {umd,bck,rnd,vwl} | o | o | go | English
AX | ə | U+0259 | {mid,cnt,unr,vwl} | @ | @ | ago | English
AX rho | ɚ | U+025ª | {mid,cnt,rho,vwl} | R |  | forensic | English
EH | ɛ | U+025B | {lmd,fnt,unr,vwl} | E | E | pet | English
OE | œ | U+0153 | {lmd,fnt,rnd,vwl} | W | 9 | plötzlich | German
ER | ɜ | U+025C | {lmd,cnt,unr,vwl} | V" | 3 | bird | UK English
ER rho | ɝ | U+025D | {lmd,cnt,unr,rho,vwl} | @. |  | bird | US English
UR | ɞ | U+025E | {lmd,cnt,rnd,vwl} | O" | 3\ |  |
H | ʌ | U+028C | {lmd,bck,unr,vwl} | V | V | cut | English
AO | ɔ | U+0254 | {lmd,bck,rnd,vwl} | O | O | dog | English
AE | æ | U+00E6 | {sml,fnt,unr,vwl} | & | { | cat | English
AEX | ɐ | U+0250 | {sml,cnt,unr,vwl} | 6 |  | Besser | German
A | a | U+0061 | {low,fnt,unr,vwl} | a | a | valle | Spanish
AOE | ɶ | U+0276 | {low,fnt,rnd,vwl} | &. | & |  |
AA | ɑ | U+0251 | {low,bck,unr,vwl} | A | A | father | English
Q | ɒ | U+0252 | {low,bck,rnd,vwl} | A. | Q | hot | English

Diphthong Vowel Phones

In addition to monophthongs, many languages contain diphthongs or even triphthongs. Diphthong (literally "two sounds" or "two tones") vowels are those that change quality during their pronunciation, or "glide", with a smooth movement of the tongue from one articulation to another, as in the English words eye, boy, and cow.

Diphthongs and triphthongs can be represented in UPS as vowel compounds, using the + symbol. However to make lexicons more readable, UPS also contains phones for common diphthongs. The table below shows both the compounding of two phones using the + symbol and the resultant UPS phone.

UPS Compound | UPS | IPA | X-SAMPA | Example | Language | Example | Language
E + I | EI | e.ɪ | eI | late | English | late | English
A + UH | AU | ɑ.ʊ | aU | foul | English | Haus | German
AO + I | OI | ɔ.ɪ | OI | toy | English | Kreuz | German
A + I | AI | ɑ.ɪ | ai | bite | English | Eis | German
I + AX | IYX | i.ə | i:6 | Tier | German | fear | English
Y + AX | UYX | y.ə | y:6 | Tür | German |  |
EH + AX | EHX | ɛ.ə | E6 | Berg | German | stairs | English
U + AX | UWX | u.ə | u:6 | Kur | German | lure | English
O + AX | OWX | o.ə | o:6 | Ohr | German | boa | English
AO + AX | AOX | ɔ.ə | O6 | dort | German | four | English

German Diphthong Vowels

The German language has several more centering diphthongs that must be represented as phone compounds and do not have explicit UPS phones assigned to them. The 'lng' diacritic is included for phonetic completeness.

UPS Compound | IPA | X-SAMPA | Example | Language
IH + AX | ɪ.ə | I6 | Wirt | German
YH + AX | ʏ.ə | Y6 | Türke | German
EY lng + AX | e.ə | e:6 | schwer | German
EH lng + AX | ɛ:.ə | E:6 | Bär | German
EU lng + AX | ø.ə | 2:6 | Föhr | German
OE + AX | œ.ə | 96 | Wörter | German
A lng + AX | a.ə | a:6 | Haar | German
A + AX | a.ə | a6 | hart | German
UH + AX | ʊ.ə | U6 | kurz | German

Nasal Vowel Phones

UPS contains phones for four nasal vowels. These are shown in the following table with French examples.

Compound | UPS | X-SAMPA | Example | Language
E nas | EN | e~ | vin | French
A nas | AN | a~ | vent | French
O nas | ON | o~ | bon | French
OE nas | OEN | 9~ | brun | French

Diacritics

This is a listing and cross reference of the diacritic phones that are used by the three phonetic alphabets.

Diacritic Phones

Diacritics are used to modify segmental phones (vowels, consonants, clicks, and ejectives) with additional phonetic detail. A diacritic cannot stand-alone. Diacritics must modify the preceding segmental phone. Any number of diacritics can follow a segmental symbol.

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA
+ | ͡ | U+0361 | Tie bar |  | _
adv | o̟ | U+031F | Advanced |  | _+
api | t̺ | U+033A | Apical |  | _a
asp | tʰ | U+02B0 | Aspirated | ^lt;h> {asp} | _h
atr | e̘ | U+0318 | Advanced tongue root |  | _A
bvd | b̤ | U+0324 | Breathy voiced |  | _t
cen | ë | U+0308 | Centralized | " | _"
cvd | b̰ | U+0330 | Creaky voiced |  | _k
den | t̪ | U+032A | Dental | [ / {dnt} | _d
ejc | pʼ | U+02BC | Ejective | {ejc} | _>
lab | tʷ | U+02B7 | Labialised | <w> {lzd} | _w
lam | t̻ | U+033B | Laminal |  | _m
lar | dˡ | U+02E1 | Lateral release |  | _l
lla | n̼ | U+033C | Linguolabial |  | _N
low | e̞ | U+031E | Lowered |  | _o
lrd | o̜ | U+031C | Less rounded |  | _c
mcn | e̽ | U+033D | Mid-centralized |  | _x
mrd | o̹ | U+0339 | More rounded |  | _O
nar | d̚ | U+031A | No audible release |  | _}
nas | ñ | U+0303 | Nasalized | ~ / <nzd> | ~ / _~
nsr | oⁿ | U+207F | Nasal release |  | _n
nsy | n̯ | U+032F | Non-syllabic |  | _^
pal | tʲ | U+02B2 | Palatalized | ; / {pzd} | '
phr | nˤ | U+02E4 | Pharyngealized |  | _?\
rai | e̝ | U+031D | Raised |  | _r
ret | o̱ | U+0331 | Retracted |  | _-
rho | ə˞ | U+02DE | Rhoticity |  | `
rtr | e̙ | U+0319 | Retracted tongue root |  | _q
syl | n̩ | U+0329 | Syllabic | {syl} | = / _=
vcd | s̬ | U+032C | Voiced |  | _v
vel | tˠ | U+02E0 | Velarized | {vzd} | _G
vls | n̊ | U+030A | Voiceless |  | _0
vph | l̴ | U+0334 | Velarized or pharyngealized | {fzd} | _e

Suprasegmentals

This is a listing and cross reference of the suprasegmental phones that are used by the three phonetic alphabets.

Suprasegmental Phones

Suprasegmentals describe the features of a language above the level of individual consonants and vowels, such as prosody, tone, length, and stress.

The first set of suprasegmental symbols, up to and including “linking”, map directly to the IPA suprasegmental set and therefore have the IPA Unicode value. This set includes length diacritics for long, half-long, and extra-short. Length is often used phonemically, so length markers could also belong in the diacritics table. For this reason they are given the lower case label format of a diacritic.

The remaining suprasegmental symbols are used in UPS to describe intonation contours in text-to-speech markup (SSML prompt documents). These UPS symbols were formed by prefixing the original SAPI labels with an underscore. This makes them more easily identifiable as a class and removes any ambiguity with other IPA symbols. For example the old SAPI symbol '!' sentence terminator is the IPA symbol for an alveolar click.

UPS | IPA | Unicode | IPA Description | X-SAMPA | SAPI Equivalent
S1 | ˈ | U+02C8 | Primary stress | " | 1
S2 | ˌ | U+02CC | Secondary stress | % | 2
. | . | U+002E | Syllable break | . |
_| | | | U+007C | Minor (foot) group | | |
_|| | ‖ | U+2016 | Major (intonation) group | || |
lng | ː | U+02D0 | Long | : |
hlg | ˑ | U+02D1 | Half-long | :\ |
xsh | ˘ | U+02D8 | Extra-short | _X |
_^ | ‿ | U+203F | Linking (absence of a break) | -\ |
_! |  |  | Intonation - exclamation |  | ! Sentence terminator (exclamation mark)
_& |  |  | Intonation - continue |  | & Word boundary
_, |  |  | Intonation - incompletion rise |  | , Sentence terminator (comma)
_s |  |  | Silence |  | _ Silence (underscore)
_. | ↘ | U+2198 | Intonation – fall | <F> | . Sentence terminator (period)
_? | ↗ | U+2197 | Intonation - question rise | <R> | ? Sentence terminator (question mark)

Clicks and Ejectives

This is a listing and cross reference of the click and ejective phones that are used by the three phonetic alphabets.

Click and Ejective Phones

IPA uses a diacritic to describe ejectives, but has specific phones for clicks and implosives. Clicks and ejectives are voiceless consonants, although implosives may be partially voiced.

UPS | IPA | Unicode | IPA Description | X-SAMPA
PCK | ʘ | U+0298 | blb,clk | O\
TCK | ǀ | U+01C0 | dnt,clk | |\
NCK | ! | U+0021 | alv,clk | !\
CCK | ǂ | U+01C2 | pla,clk | =\
LCK | ǁ | U+01C1 | alv,lat,clk | |\|\
BIM | ɓ | U+0253 | blb,imp,vcd | b_<
DIM | ɗ | U+0257 | dnt-alv,imp,vcd | d_<
QIM | ʛ | U+029B | uvl,imp,vcd |
QIM vls | ʠ | U+02A0 | uvl,imp,vls |
GIM | ɠ | U+0260 | vel,imp,vcd | g_<
JIM | ʄ | U+0284 | pal,imp,vcd |
P ejc | pʼ | 0070 02BC | blb,ej | b_>
T ejc | tʼ | 0074 02BC | dnt-alv, ej | t_>
K ejc | kʼ | 006B 02BC | vel ej | g_>
S ejc | sʼ | 0073 02BC | alv fric ej | s_>
QT ejc | qʼ | 0071 02BC | uvl,ej |

Tones

This is a listing and cross reference of the tone phones that are used by the three phonetic alphabets.

Tone Phones

Tone describes the use of pitch in speech sounds to distinguish lexical or grammatical meaning. Lexical tones can follow a vowel or syllabic consonant. They can be made up of simple levels, on a universal scale which has a maximum of five level contrasts, or they can be contours composed of sequences of tones. A sequence of three tones should be sufficient to describe any tone contour.

IPA contains a mixture of lexical tones and contour tones. UPS covers the five lexical tones found in IPA, plus upstep and downstep. All contour tones can be represented in UPS by compound tones.

UPS does not include tonal symbols for the following IPA symbols: Rising, Falling, High Rising, Low Rising and Rising-Falling. These can all be defined in UPS using tone sequences. Global Rise and Global Fall are equivalent to "intonation – fall" and "intonation – question rise" in UPS ("Suprasegmentals").

UPS | IPA | Unicode | IPA Description | X-SAMPA
T5 | e̋ | U+030B | Extra high Level | _T
T4 | é | U+0301 | High Level | _H
T3 | ē | U+0304 | Mid Level | _M
T2 | è | U+0300 | Low Level | _L
T1 | ȅ | U+030F | Extra Low Level | _B
T- | ↓ | U+2193 | Downstep | !
T+ | ↑ | U+2191 | Upstep | ^

Other Phones

This is a listing and cross reference of the uncommon phones that are not listed in the other phone tables, but are used by the three phonetic alphabets.

Other Phones

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA
WH | ʍ | U+028D | lbv,frc,vls | w<vls> | W
ESH | ʜ | U+029C | epl,frc,vls |  | H\
EZH | ʢ | U+02A2 | epl,frc,vcd |  | <\
ET | ʡ | U+02A1 | epl,stp |  | >\
SC | ɕ | U+0255 | pla,frc,vls |  | s\
ZC | ʑ | U+0291 | pla,frc,vcd |  | z\
LT | ɺ | U+027A | alv,lat,flp | *<lat> | l\
SHX | ɧ | U+0267 | simultaneous SH and X |  | x\
HZ | ɦ | U+0266 | glt,frc,vcd |  | h\