Penyegerakan bibir
Apa yang awak cakap?

Menjadikannya lebih realistik
Ada beberapa watak yang akan bercakap, dan buat masa ini anda hanya nampak belon teks. Sebenarnya saya sudah boleh menggunakan audio, tetapi ia belum nampak cantik. Apabila seseorang bercakap, mulutnya mesti bergerak, jadi saya mengkaji bagaimana ia dilakukan dalam kartun.
Ringkasnya, dengan sekurang-kurangnya 6 hingga 9 imej mulut yang berbeza, anda boleh membuatnya nampak seperti benar-benar bercakap. Ada pelbagai program yang menukar audio kepada imej mana yang perlu dipaparkan.
Input audio > program > output [ABBFGG].
Kemudian dalam permainan, bingkai kepala yang berbeza dipaparkan untuk setiap huruf.
-- convert csv to a lua table
local libSyncTable = {}
for line in csvData:gmatch("[^\r\n]+") do
local a, b = line:match("(%S+)\t(%w)")
local framekey
if b == "A" then
framekey = 1
elseif b == "B" then
framekey = 2
elseif b == "C" then
framekey = 3
elseif b == "D" then
framekey = 4
elseif b == "E" then
framekey = 5
elseif b == "F" then
framekey = 6
-- elseif b == "G" then
-- framekey = 7
-- elseif b == "H" then
-- framekey = 8
-- elseif b == "X" then
-- framekey = 9
end
table.insert(libSyncTable, {a, framekey})
end
Ada beberapa program yang boleh melakukannya, tetapi saya memilih program percuma https://github.com/DanielSWolf/rhubarb-lip-sync.
if not os.path.exists(audioPath_lsc):
print(f"create lcs {audioPath} with text {text}")
with open("../temp/lipsync.txt", 'w') as file:
file.write(text)
command = [
"../src/lib-dev/rhubarb/rhubarb", # Het pad naar het rhubarb-programma
audioPath_ogg, # SOUND_FILE
"--recognizer", "pocketSphinx", # Recognizer instellen
"--exportFormat", "tsv", # Export formaat instellen
"--dialogFile", f"../temp/lipsync.txt", # TEMP_DIR voor dialogFile
"--output", audioPath_lsc, # OUTPUT_FILE
"--datFrameRate", "60", # Data frame rate
"--extendedShapes", "ABCDEF" # Extended shapes
]
result = subprocess.run(command, check=True)
if result.returncode != 0:
print("error")