mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-09 19:41:32 +00:00
record audio duration and encoding in tacotron2 job
This commit is contained in:
1 parent
cb4bca73ee
commit
a567caad45
3 files changed
+26
-5
No files matched your search
+8
-4
@@ -20,11 +20,9 @@ pub struct InsertMediaFileArgs<'a> {
|
||||
|
||||
pub maybe_mime_type: Option<&'a str>,
|
||||
pub file_size_bytes: u64,
|
||||
pub duration_millis: u64,
|
||||
pub sha256_checksum: &'a str,
|
||||
|
||||
// TODO: Media duration.
|
||||
//pub duration_millis: u64,
|
||||
pub maybe_duration_millis: Option<u64>,
|
||||
pub maybe_audio_codec_name: Option<&'a str>,
|
||||
|
||||
pub public_bucket_directory_hash: &'a str,
|
||||
pub maybe_public_bucket_prefix: Option<&'a str>,
|
||||
@@ -90,6 +88,9 @@ SET
|
||||
maybe_mime_type = ?,
|
||||
file_size_bytes = ?,
|
||||
|
||||
maybe_duration_millis = ?,
|
||||
maybe_audio_encoding = ?,
|
||||
|
||||
checksum_sha2 = ?,
|
||||
|
||||
public_bucket_directory_hash = ?,
|
||||
@@ -124,6 +125,9 @@ SET
|
||||
args.maybe_mime_type,
|
||||
args.file_size_bytes,
|
||||
|
||||
args.maybe_duration_millis,
|
||||
args.maybe_audio_codec_name,
|
||||
|
||||
args.sha256_checksum,
|
||||
|
||||
args.public_bucket_directory_hash,
|
||||
|
||||
+14
@@ -11,6 +11,7 @@ use errors::AnyhowResult;
|
||||
use filesys::check_file_exists::check_file_exists;
|
||||
use filesys::safe_delete_temp_directory::safe_delete_temp_directory;
|
||||
use filesys::safe_delete_temp_file::safe_delete_temp_file;
|
||||
use media::decode_basic_audio_info::decode_basic_audio_file_info;
|
||||
use migration::text_to_speech::get_tts_model_for_run_inference_migration::TtsModelForRunInferenceMigrationWrapper;
|
||||
use mysql_queries::column_types::vocoder_type::VocoderType;
|
||||
use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob;
|
||||
@@ -309,6 +310,17 @@ async fn process_job_with_cleanup(
|
||||
|
||||
safe_delete_temp_file(&output_metadata_fs_path);
|
||||
|
||||
info!("Decoding audio info...");
|
||||
|
||||
// NB: The metadata file emitted by tacotron2 hasn't been recording the audio duration recently. (Perhaps it never worked?)
|
||||
let mut maybe_audio_duration_millis = file_metadata.duration_millis.clone();
|
||||
let mut maybe_audio_codec_name = None;
|
||||
|
||||
if let Ok(audio_info) = decode_basic_audio_file_info(&output_audio_fs_path, Some("audio/wav"), None) {
|
||||
maybe_audio_duration_millis = audio_info.duration_millis;
|
||||
maybe_audio_codec_name = audio_info.codec_name;
|
||||
}
|
||||
|
||||
// ==================== UPLOAD FILES AND SAVE RECORD ==================== //
|
||||
|
||||
let inference_result = upload_results(UploadResultArgs {
|
||||
@@ -319,6 +331,8 @@ async fn process_job_with_cleanup(
|
||||
work_temp_dir,
|
||||
pretrained_vocoder,
|
||||
file_metadata: &file_metadata,
|
||||
maybe_audio_duration_millis,
|
||||
maybe_audio_codec_name: maybe_audio_codec_name.as_deref(),
|
||||
output_audio_fs_path: &output_audio_fs_path,
|
||||
output_spectrogram_fs_path: &output_spectrogram_fs_path,
|
||||
upload_as_media_file: model_dependencies.upload_as_media_file,
|
||||
|
||||
+4
-1
@@ -38,6 +38,8 @@ pub struct UploadResultArgs<'a> {
|
||||
|
||||
// Outputs
|
||||
pub file_metadata: &'a FileMetadata,
|
||||
pub maybe_audio_duration_millis: Option<u64>,
|
||||
pub maybe_audio_codec_name: Option<&'a str>,
|
||||
pub output_audio_fs_path: &'a Path,
|
||||
pub output_spectrogram_fs_path: &'a Path,
|
||||
|
||||
@@ -107,7 +109,8 @@ async fn upload_as_media_file(args: UploadResultArgs<'_>) -> Result<ResultDetail
|
||||
job: &args.job,
|
||||
maybe_mime_type: Some(&MIME_TYPE),
|
||||
file_size_bytes: args.file_metadata.file_size_bytes,
|
||||
duration_millis: args.file_metadata.duration_millis.unwrap_or(0),
|
||||
maybe_duration_millis: args.maybe_audio_duration_millis,
|
||||
maybe_audio_codec_name: args.maybe_audio_codec_name,
|
||||
sha256_checksum: &file_checksum,
|
||||
public_bucket_directory_hash: result_bucket_location.get_object_hash(),
|
||||
maybe_public_bucket_prefix: Some(BUCKET_FILE_PREFIX),
|
||||
|
||||
Reference in new issue
Block a user