Bem, você também pode inserir exatamente os fonemas que você quer que sejam ditos. A sintaxe não é tão complicada.
Ex:
[[inpt PHON]] hAAIH.
Confira este link para saber mais: link
O comando say
do OS X é útil para algumas tarefas (como o Skype 'me notifica quando um contato fica online), mas está pronunciando alguns nomes incorretamente. Existe uma maneira de ensinar say
a pronunciar uma palavra diferente?
Por exemplo, tente:
say "Hi, Joel Spolsky"
O 'ol' soa como 'bola' em vez de 'velha'. Eu gostaria de adicionar uma exceção que diga "Pronuncie Spolsky assim", em vez de tentar ensinar novas regras lingüísticas. Aposto que há uma maneira, uma vez que pode pronunciar "iphone" como a Apple quer.
Atualização - Depois de algumas pesquisas, eis o que aprendi:
dtrace
durante a execução de say
, encontrei alguns arquivos interessantes abertos em /System/Library/PrivateFrameworks/SpeechDictionary.framework/Resources. Este é provavelmente o dicionário da fala, mas eles são todos binários, exceto para Homophones, que é XML. Adicionar entradas a Homophones não faz nada - é provavelmente usado em fala para texto. Eles também são assinados pela Apple - alterá-los pode impedir que alguns programas funcionem.
Meus palpites são:
say
é uma leve camada de código no topo do Speech Synthesis Manager. Seria fácil para os desenvolvedores da Apple adicionar uma opção de linha de comando para pegar o caminho para um plist de dicionário de fala para mapeamento de fonemas alternativo, mas eles não fizeram isso. Pode ser um projeto útil de código aberto para escrever um say
melhor. say
é como o JRobert sugeriu. Aqui está minha implementação rápida, usando a sugestão ortográfica de Doug Harris:
#!/bin/sh
echo $@ | tr '[A-Z]' '[a-z]' |
sed "s/spolsky/spowlsky/g" |
/usr/bin/say
Finalmente, algumas coisas divertidas da linha de comando:
# Apple is weird
sqlite3 /System/Library/PrivateFrameworks/SpeechDictionary.framework/Resources/Tuples .dump
# Get too much information about what files are being opened
sudo dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
# Just fun
say -v bad "Joel Spolsky Spolsky Spolsky Spolsky Spolsky, Joel Spolsky Spolsky Spolsky Spolsky Spolsky"
echo "scale=1000; 4*a(1)" | bc -l | say
Bem, você também pode inserir exatamente os fonemas que você quer que sejam ditos. A sintaxe não é tão complicada.
Ex:
[[inpt PHON]] hAAIH.
Confira este link para saber mais: link
Sua nova opinião funcionará como o velho ditado, mas com sua pronúncia preferida.
@ bruno-carvalho respondeu a esta pergunta para mim. Mas também precisei procurar a tag [[inpt TEXT]]
para obter o comando say para retornar ao texto de leitura (sintetizando a fala) normalmente. Por exemplo: say [[inpt PHON]] hAAIH, [[inpt TEXT]] how are you?
Espero que acrescentar isso à resposta ajude os leitores subsequentes desta questão.
Eu não acho que você pode. Você poderia tentar definir a voz padrão para uma diferente nas preferências do sistema, ou você poderia digitar como você deseja que as coisas sejam pronunciadas. Por exemplo, "Hi, Jole Spole sky".
Esta é uma limitação infeliz, dado que a Apple parece estar na maior parte do caminho. Os usuários do VoiceOver podem inserir facilmente suas próprias pronúncias usando o utilitário VoiceOver (fala- > Pronúncia). No entanto, as configurações do VoiceOver não se aplicam ao comando "say" ou ao menu Editar - "Discurso inicial" no Safari e em outros aplicativos fornecidos pela Apple.
Não há como "ensinar" o programa say
a pronunciar palavras de maneira diferente. Como sugerido acima, a maneira mais fácil de obter a pronúncia desejada é ajustar a ortografia das palavras até que elas sejam ditas da maneira desejada.