| 240 | """ |
| 241 | |
| 242 | def __init__(self, in_channel_image, in_channel_audio, out_dim): |
| 243 | super(SyncNet, self).__init__() |
| 244 | self.in_channel_image = in_channel_image |
| 245 | self.in_channel_audio = in_channel_audio |
| 246 | self.out_dim = out_dim |
| 247 | self.face_encoder = FaceEncoder(in_channel_image, out_dim) |
| 248 | self.audio_encoder = AudioEncoder(in_channel_audio, out_dim) |
| 249 | self.merge_encoder = nn.Sequential( |
| 250 | nn.Conv2d(out_dim * 2, out_dim, kernel_size=3, padding=1), |
| 251 | nn.LeakyReLU(0.2), |
| 252 | nn.Conv2d(out_dim, 1, kernel_size=3, padding=1), |
| 253 | ) |
| 254 | |
| 255 | def forward(self, image, audio): |
| 256 | image_embedding = self.face_encoder(image) |