Skip to content

Post-Processing Functionality#316

Merged
tombogle merged 24 commits into
sillsdev:audio-normalizationfrom
Orion-CS:audio-normalization
Mar 14, 2025
Merged

Post-Processing Functionality#316
tombogle merged 24 commits into
sillsdev:audio-normalizationfrom
Orion-CS:audio-normalization

Conversation

@Orion-CS

@Orion-CS Orion-CS commented Mar 8, 2025

Copy link
Copy Markdown

Added Post-Processing Functionality:
● Volume Normalization
● Reduce Noise
● Constrain Pauses Between Sentences
● Constrain Pauses Between Chapters
Options accessed through tab when exporting audio files

Completed during LightSys Code-a-Thon 2025


This change is Reviewable

Orion-CS and others added 23 commits March 3, 2025 15:19
Passing the PublishingModel into the PublishingMethodBase.PublishChapter method
correct names of boxes in post processing UI
save values from post processing UI in model
add region to improve readability
start pause constraining
@tombogle tombogle self-assigned this Mar 10, 2025
@tombogle
tombogle self-requested a review March 10, 2025 20:32

@tombogle tombogle left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 11 files at r1, all commit messages.
Reviewable status: 1 of 11 files reviewed, 1 unresolved discussion


src/HearThis/HearThis.csproj line 146 at r1 (raw file):

    <PackageReference Include="Newtonsoft.Json" Version="13.0.3">
    </PackageReference>
    <PackageReference Include="NUnit3TestAdapter" Version="5.0.0" />

This must have been added by mistake. Production code shouldn't need to reference any NUNIT related packages.

@tombogle tombogle left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 2 of 11 files at r1.
Reviewable status: 3 of 11 files reviewed, 4 unresolved discussions (waiting on @Orion-CS)


src/HearThis/Publishing/IPublishingMethod.cs line 21 at r1 (raw file):

		string RootDirectoryName { get; }
		IEnumerable<string> GetFinalInformationalMessages(PublishingModel model);
		void PublishChapter(string rootPath, string bookName, int chapterNumber, string pathToIncomingChapterWav, IProgress progress, PublishingModel publishingModel = null);

Here, I think I lean toward passing in a new interface, IPostProductionOptions. That can be added to IPublishingInfoProvider. PublishingModel already has one constructor that takes an IPublishingInfoProvider, and the other one could be modified to take an IPostProductionOptions, to facilitate unit testing. I think we're going to want these settings to be considered as project settings and persisted on a per-project basis, and Project already implements IPublishingInfoProvider.


src/HearThis/Publishing/ClipRepository.cs line 32 at r1 (raw file):

using static HearThis.Script.ParatextScriptProvider;
using SIL.Media;
using System.Windows.Forms;

I'm not seeing where this is needed. I think we'd prefer to avoid having this depend on Winforms so it'll be easier to break out into a business logic layer if/when we make a HearThis extension for Platform,.Bible


src/HearThis/Publishing/ClipRepository.cs line 911 at r1 (raw file):

		internal static void MergeAudioFiles(IReadOnlyCollection<string> files, string pathToJoinedWavFile, IProgress progress,
			PublishingModel publishingModel = null)

To minimize the amount of stuff having to be passed in and to thereby facilitate unit testing, this could really just take the SentencePause object.

@tombogle
tombogle merged commit a4caaa0 into sillsdev:audio-normalization Mar 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants