前に正しく説明できなかった以前の投稿を編集しています。私はこのコード、大量のリストを扱っています
param_values = {
'aa' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,1.0], [-1,-1]],
'ae' : [[-1,-1], [-1,-1], [0.3,0.4], [-1,-1], [0.15,1.0], [-1,-1]],
'ah' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,1.0], [-1,-1]],
'ao' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.3,1.0], [-1,-1]],
'b' : [[-1,-1], [0.2,1.0], [-1,-1], [-1,-1], [0.15,0.2], [-1,-1]],
'ch' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.4], [-1,-1]],
'd' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.4], [-1,-1]],
'dh' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.35], [-1,-1]],
'dx' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.35], [-1,-1]],
'eh' : [[-1,-1], [-1,-1], [0.1,0.5], [-1,-1], [0.4,0.7], [-1,-1]],
'er' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.5], [-1,-1]],
'ey' : [[-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [0.3,0.5], [-1,-1]],
'f' : [[0.5,1.0], [-1,-1], [-1,-1], [-1,-1], [-1,-1], [-1,-1]],
'g' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.8], [-1,-1]],
'hh' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.8], [-1,-1]],
'ih' : [[-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [0.05,0.15], [-1,-1]],
'iy' : [[-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [0.1,0.15], [-1,-1]],
'jh' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.6], [-1,-1]],
'k' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.8], [-1,-1]],
'l' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.6], [-1,-1]],
'm' : [[-1,-1], [0.2,1.0], [-1,-1], [-1,-1], [0.15,0.2], [-1,-1]],
'n' : [[-1,-1], [-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [-1,-1]],
'ng' : [[-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [0.09,0.3], [-1,-1]],
'p' : [[-1,-1], [0.2,1.0], [-1,-1], [-1,-1], [0.15,0.2], [-1,-1]],
'r' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.6], [-1,-1]],
's' : [[-1,-1], [-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [-1,-1]],
'sh' : [[-1,-1], [-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [-1,-1]],
't' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.4], [-1,-1]],
'th' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.2], [-1,-1]],
'uh' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.5,1.0]],
'uw' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.5,1.0]],
'v' : [[0.5,1.0], [-1,-1], [-1,-1], [-1,-1], [-1,-1], [-1,-1]],
'w' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.2,1.0]],
'y' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.4], [-1,-1]],
'z' : [[-1,-1], [-1,-1], [-1,-1], [0.3,1.0], [-1,-1], [-1,-1]],
'zh' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.15,0.6], [-1,-1]]
'o' : [[-1,-1], [-1,-1], [-1,-1], [-1,-1], [-1,-1], [0.4,1.0]]
}
def coart(phonemeFile) :
""" Coarticulation function where forward and backward coarticulation take place a and parameter values are generated"""
with open("syllabifiedPhonemes.txt", "r") as pFile :
for line in tFile :
line = line.split()
if line == " ' " :
continue
param_valuesを書かれている各音素の対応リストを持っている音素のリストです。各音素のリストは、Mayaから得たブレンドシェイプのスライダの値に関連しています。 Mayaには、lower_lip_under_upper_teeth、lips_touch、lips_spread、teeth touch、jaw_open、lips_roundの6つのブレンドシェイプがあります。したがって、これらの値は、各スライダ値に対して音素が有する範囲である。
[-1、-1]は、特定のblendshapeが使用されていないことを示します。その他の値は、シェイプが移動できる範囲です。
リストには、ほとんどの場合、1つの音素に対してアクティブな単一の唇の形状が示され、残りの部分は[-1、-1]です。しかし、いくつかの音素については、同時に2つまたは3つの唇の形状がアクティブである。 Mayaで手動でアニメーションを作成しました。リップ形状の値は、0から1
入力ファイルの内容、syllabifiedPhonemes.txtがあるに変わるファイルでこれらの音素のすべてを通過し、値を設定する必要があり
sh iy ' hh eh ' t er ' t aa r k ' s uw t n ' k r iy s ' hh iy ' w aa ' sh w aa dx ' er ' l ih ' y er
プログラム上記のリストを参照して、対応する唇の形状を決定する。これらの値は、さらなる作業を実行できるように保存する必要があります。一重引用符は音節境界を表します。最初は、音節境界を無視した音素を通過し、すべての形状の唇の形状値を保存する必要があります。次の段階では、各境界の内側を調べる必要があります。
これまでのところ私はこれしか持っていませんが、それ以上の進め方については空白です。私は私の質問を正しく説明したと思います。ありがとうございました。
値は、シェイプリスト内にあるシェイプの値です。誰でも助けてくれますか?ありがとうございました。
申し訳ありませんが、音素がどのように形に接続されているのか分かりません。 – Jacob
音素の例リストが実際に言うことを理解しようとしている人は誰ですか? – Chowlett
ここで欠落している部分は音素と形がどのように関連付けられているのでしょうか? @Chowlett – Jacob