2

「Da Di Du、Beh Bi Burr、...」など、144 の音素ペアの wave ファイルを作成する必要があります。

具体的には、それぞれが一定のピッチを維持する必要があるため、それらをピッチシフトして音符を作成できます (ピッチ値を入力できればさらに良いでしょう!)。

歌おうとしている自分の .WAV ファイルを 144 個も録音したくありません。

OSX に組み込まれている音声合成 API を使用してこれを行うことはできますか?

そうでない場合、他にできる方法はありますか?

編集: 特定の品質グレードは必要ありません。重要なことは、各発話が区別可能で、正しいピッチであることです。

編集:これを解決するための試みを以下に示します。満足できるものに到達した場合は、それを回答に分割します。

Speech Synthesis Programming Guideにはすべてが含まれているようです。ここでは輪郭を使用してピッチを制御し、ここでは音声入力を入力する方法について説明します

ただし、API 全体を理解し、それを実行するための OS X プロジェクトを作成するのは大変な作業です。だから、コマンドライン オプションや既存のシンセサイザーの使用に興味があります。

マンページに記載されていないことを「言う」ためのCRGreenの回答ユーザーパラメーター:

ここで例を見つけました: http://hints.macworld.com/article.php?story=20120204172337402

編集: 音素https://apple.stackexchange.com/questions/53858/in-terminal-how-to-get-say-to-say-things-right-ie-using-custom-phonetics

4

2 に答える 2

2

AppleScript スクリプト エディタの場合:

set diphones to {"Dah", "Di", "Du", "Beh", "Bi", "Burr"} --etc.

set targetFolder to ((choose folder) as text)

repeat with p in diphones
    say p using "Vicki" pitch 55 modulation 0 saving to (targetFolder & p & ".aif")
end repeat

次に、ファイルを WAV に変換します。

"say" コマンド ディクショナリには、他にもいくつかのオプションがあります。

しかし、それはそれほど単純ではないと思います。スピーチ シンセがこれらのダイフォンをどのように扱うかは奇妙であり、使用する声によって異なることさえあります。思い通りのサウンドになるように、かなりの数を操作する必要がある場合があります。たとえば、Vicki は「ディ」を「DEE」のように言い、「バイ」を「BYE」のように言います。これらの声に短い「i」(「big」のように) を単にディフォンとしてイントーンさせるのは非常に困難です。「大きい」(たとえば) と表示してから、Audacity でサウンドを編集し、編集したバージョンの最後を切り取り、フェードアウトしてからエクスポートする必要がある場合もあります。私はこれをやっただけで動作しますが、ええ、いくつかの特別なケースの調整を行う必要があります. 開発者ツールをお持ちの場合は、音声テキストを「調整」できる「Repeat After Me」というアプリもあります。しかし(驚くべきことに)今説明した状況では、それは役に立ちません。(ただし、大きなチャンクではかなり強力です)。

[編集]そうです、上記の音声入力バージョンは次のようになります。

set diphones to {"dAO", "dIH", "dAX", "bEH", "bIH", "brr"} --etc., changed to be phonetic based on Apple's system

set targetFolder to ((choose folder) as text)

repeat with p in diphones
    say ("[[inpt PHON]]" & p & "[[inpt TEXT]]") using "Vicki" pitch 52 modulation 0 saving to (targetFolder & p & ".aif")
end repeat

【追記】

数年前、Apple の声はすべて同じように機能し、どんな声でも曲を完璧に歌うように調整できました (私はある夜、「星条旗」を歌いました)。その後、何らかの理由で、開発者は声を変更しただけでなく、一貫性を取り除いて、一部の声が他の声とはまったく異なる動作をするようにしました。私はこれに満足していませんでした。次の点を考慮してください。

デフォルトの音声 (「アレックス」) を使用すると、次の発話は (検索することをお勧めします) 可能な限り:

say "[[inpt TUNE]] d {D 114; P 95.0:100} UW {D 227; P 95.0:100} 1IY {D 382; P 95.0:100} . {D 30} [[inpt TEXT]]" using "Alex"

しかし、「チェロ」や「パイプオルガン」を使うと、このTUNEモードを使っていても、最後に奇妙なリフトが得られます。理由を聞かないでください。では、少なくとも「アレックス」については、どうやってこれを機能させたのでしょうか。前述の「Repeat After Me」アプリを使用して、「調整された」出力を簡素化しました。TUNE と PHON のいくつかのバリエーションを使用して、おそらく必要なものを取得できると思います。ただし、「Cellos」や「Pipe Organ」は、単調なイントネーションを作成するのに問題があるため、近づかないようにする必要があります (ただし、特定のダイフォン/トライフォンでは問題ない場合があります)。そして、おそらく両方を使用する必要があるかもしれませんが、これは面倒です。あなたの痛みが分かります。

もう1つのバリエーション。次の「rate」タグがより長い発話を強制する方法に注意してください。

say "[[rate - 66]] [[inpt TUNE]] d {D 114; P 95.0:100} UW {D 227; P 95.0:100} 1IY {D 382; P 95.0:100} . {D 30} [[inpt TEXT]]" using "Alex"

[補遺 II]

あ、でもこれ見てください。これにより、「パイプオルガン」が均等になります。最後の音素の前にピッチ変調 (「pbas」) を強制することで、エンド リフトを取り除きます。

say "[[rate - 66]] [[inpt TUNE]] d {D 114; P 95.0:100} UW {D 227; P 95.0:100} [[pbas - 5]] 1IY {D 382; P 95.0:100} . {D 30} [[inpt TEXT]]" using "Pipe Organ"

彼らは私たちをここで一生懸命働かせています:-)

これは単純化されたバージョンで、元に戻りますが、その pbas をそこに貼り付けます。

say "[[inpt TUNE]] d UW [[pbas - 5]] 1IY [[inpt TEXT]]" using "Pipe Organ"
于 2014-05-19T16:57:54.233 に答える
1

次のスクリプトを使用して、何とか動作させることができました。

-- to run, '/usr/bin/osascript genPhonemes'

-- https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/SpeechSynthesisProgrammingGuide/Phonemes/Phonemes.html
-- http://stackoverflow.com/questions/23742648/synthesize-phoneme-pairs-on-osx
-- http://applescript.wikia.com/wiki/Say

set Vowels to { "AA", "AY", "EH", "EY", "IY", "AO", "OY", "UW", "UWIY", "AX", "AXIY", "IH"}
set Consonants to { "d", "b", "r", "N", "m", "v", "S", "z", "h", "l", "k", "t" }
set NoteOffsets to { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -3, -2, -1 }
set NoteNumbers to { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11" }

set targetFolder to "OUT" -- ((choose folder) as text)

repeat with i from 1 to 12
    set C to (item i of Consonants)

    set midinote to 60 - 12 + (item i of NoteOffsets)

    repeat with j from 1 to 12
        set V to (item j of Vowels)

        set filename to targetFolder  &  C & "_" & (item j of NoteNumbers) & ".aif"

        set utterance to "[[inpt PHON]]" & C & V      

        say utterance   using "Pipe Organ"   speaking rate 120   pitch midinote   modulation 0   saving to filename
    end repeat
end repeat

何らかの理由で、母音のペアが間違って出てきます。第二母音のピッチが上がっています。パイプ オルガンを使用すると、最後の母音は完全 4 度高くなります。

たとえば、「doo-ee」のように聞こえる dUWIY では、最後の ee は完全 4 度高くなります。

他に適切な唯一の声はチェロで、これもそれを台無しにします。

これを修正する方法はありますか?

于 2014-05-21T16:41:09.760 に答える