Corrección de errores de pronunciación en el comando 'Decir' en la terminal


4

Estoy teniendo dificultades para corregir la pronunciación en el comando 'decir', usando 10.9.

Intenté agregar nuevas pronunciaciones a través de:

Preferencias del sistema & gt; Dictado y Discurso & gt; Abrir preferencias de accesibilidad & gt; Abrir la utilidad VoiceOver & gt; Discurso & gt; Pronunciación & gt; +

Después de agregar una nueva entrada, la probé en Terminal y TextEdit y no la pronuncié correctamente:

$ say -v "Samantha" -f filename.txt -o audiofile.aiff

Aunque no funcionó en TextEdit (Editar & gt; Speech & gt; Start Speaking), quiero poder lograr esto en Terminal.

¿Alguien tiene alguna idea de cómo puedo hacer esto?


justo antes de ir a Pronunciación, en la pestaña Voces, ¿es Samantha la voz predeterminada? Puede ser que la capacitación solo funcione para el valor predeterminado.
dwightk

Sí, ella es. Todavía parece que no puedo hacer que esto funcione.
user75350

Respuestas:


2

Aqui tienes:

# read.sh <file-to-read> [name-of-voice]
#!/bin/bash

textToRead=$(cat $1)

IFS=$'\n'
while read rep; do
        IFS=" "
        repArray=( $rep )
        textToRead=${textToRead//${repArray[0]}//${repArray[1]}}
done < replacements.txt

if [ -z $2 ]; then
        echo "$textToRead" | say
else
        echo "$textToRead" | say -v $2
fi

Este shell shell lee reemplazos de replacements.txt y usa el comando decir para leer el contenido de los archivos después de reemplazar lo que está definido en replacements.txt.

replacements.txt: Una línea por reemplazo, <search> <replace>.

Lo siento por el código feo ... Odio las secuencias de comandos de bash.


1
¡Esto es increíble! ¡Muchas gracias por tomarse el tiempo para escribir esto!
user75350

3

De acuerdo a este hilo de 2007 en Discussions.apple.com La utilidad VoiceOver solo corrige pronunciaciones en VoiceOver, no en texto a voz.

Así que si quieres conseguir say para pronunciar correctamente las palabras, debe ejecutar una búsqueda y reemplazo en el archivo de texto por cada palabra mal pronunciada. Probablemente haya una buena manera de hacer esto en un solo paso con un script , pero si solo quieres hacerlo una vez puedas:

  1. Abra el archivo en Text Edit (o cualquier editor de texto que prefiera, me gusta Text Wrangler)
  2. Encuentra (por ejemplo) "mujeres" y reemplaza a todos con "wimmen" (ubicado en Edit > Find > Find and Replace... en Text Edit)
  3. Vaya a la siguiente palabra que desea corregir, busque y reemplace todo hasta que haya corregido todas las declaraciones erróneas.
  4. correr say en el archivo de texto ahora incorrectamente deletreado.

Gracias. Cuál sería la mejor forma de hacer esto? ¿Sería encontrar y reemplazar cada palabra mal pronunciada usando sed o hay una mejor manera? Por curiosidad, ¿hay alguna herramienta de búsqueda de diccionarios disponible en algún lugar?
user75350

1
probablemente podría crear un comando sed que haga todo el buscar y reemplazar en una línea y luego guardarlo como un script bash. A medida que encuentre nuevas pronunciaciones erróneas, podría editar el script.
dwightk
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.