ターミナルの「言う」コマンドの発音エラーを修正する


4

「say」コマンドで10.9を使用して発音を修正するのが困難です。

私は新しい発音を追加しようとしました:

システム環境設定>ディクテーションおよび音声>アクセシビリティ設定を開く> VoiceOverユーティリティを開く>音声>発音> +

新しいエントリを追加した後、TerminalとTextEditの両方で試してみましたが、どちらも正しく発音しませんでした。

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

TextEdit([編集]> [音声]> [発言の開始])では機能しませんでしたが、ターミナルでこれを実現できるようにしたいと思います。

誰も私がこれを行う方法について考えていますか?


発音に移動する直前に、代わりに[音声]タブで、サマンサはデフォルトの音声ですか?トレーニングはデフォルトでのみ機能する可能性があります。
dwightk 14

はい、彼女はそうです。まだこれを機能させることができないようです。
user75350 14

回答:


2

どうぞ:

# 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

このシェルスクリプトは、置換replacements.txtを読み取り、sayコマンドを使用して、で定義されている内容を置換した後、ファイルの内容を読み取りますreplacements.txt

replacements.txt:置換ごとに1行、<search> <replace>

codeいコードでごめんなさい... bashスクリプトが嫌いです。


1
これは素晴らしいです!これを書いてくれてありがとうございます!
user75350 14

3

Discussions.apple.comのこの2007スレッドによると、VoiceOverユーティリティは音声読み上げではなくVoiceOver自体の発音のみを修正します。

そのためsay、単語を正しく発音させたい場合は、誤検出された単語ごとにテキストファイルで検索と置換を実行する必要があります。スクリプトを使用してこれを1ステップで実行するのにおそらく良い方法がありますが、一度実行したい場合は次のようにします。

  1. テキスト編集でファイルを開きます(またはテキストラングラーが好きなテキストエディター)
  2. 「女性」を検索し、すべてを「水泳」に置き換えます(Edit > Find > Find and Replace...テキスト編集で検索)
  3. すべての誤発音を修正するまで、検索と置換を修正する次の単語に移動します。
  4. sayスペルが間違ったテキストファイルで実行します。

ありがとう。これを行う最良の方法は何でしょうか?sedを使用して、誤発音のある単語を見つけて置き換えるのでしょうか、それとももっと良い方法がありますか?好奇心から、どこかで利用可能な辞書検索ツールさえありますか?
user75350 14

1
おそらく、すべての検索と置換を1行で実行するsedコマンドを作成し、それをbashスクリプトとして保存できます。新しい誤発音を見つけたら、スクリプトを編集するだけで済みます。
dwightk 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.