4 votos

Corrección de errores de pronunciación en el comando "Say" de Terminal

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

He intentado añadir nuevas pronunciaciones a través de:

Preferencias del Sistema > Dictado y voz > Abrir Preferencias de Accesibilidad > Abrir Utilidad VoiceOver > Voz > Pronunciación > +.

Después de añadir una nueva entrada lo probé tanto en Terminal como en TextEdit y ninguno de los dos lo pronunció correctamente:

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

Aunque no funcionó en TextEdit (Edit > Speech > Start Speaking), quiero poder lograr esto en Terminal.

¿Alguien tiene alguna idea de cómo puedo hacerlo?

3voto

Paul Puntos 5080

Según este hilo de 2007 en discussions.apple.com la utilidad VoiceOver sólo corrige las pronunciaciones en el propio VoiceOver, no en la conversión de texto a voz.

Así que si quieres say para pronunciar correctamente las palabras debe ejecutar una búsqueda y sustitución en el archivo de texto para cada palabra mal pronunciada. Probablemente hay una buena manera de hacer esto en un solo paso con un script. pero si sólo quieres hacerlo una vez, puedes hacerlo:

  1. Abra el archivo en Text Edit (o cualquier editor de texto que prefiera, a mí me gusta Text Wrangler)
  2. Busque (por ejemplo) "women" y sustitúyalo todo por "wimmen" (Situado en Edit > Find > Find and Replace... en Edición de texto)
  3. Pasa a la siguiente palabra que quieras corregir encontrando y sustituyendo todas hasta que hayas corregido todos los errores de pronunciación.
  4. Ejecutar say en el archivo de texto ahora mal escrito.

2voto

jojayontour Puntos 36

Aquí 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 script lee los reemplazos de replacements.txt y utiliza el comando say para leer el contenido de los archivos después de reemplazar lo definido en replacements.txt .

replacements.txt : Una línea por sustitución, <search> <replace> .

Perdón por el código feo... Odio bash scripting.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X