Post-Processing Functionality#316
Conversation
Passing the PublishingModel into the PublishingMethodBase.PublishChapter method
…rthis into audio-normalization
correct names of boxes in post processing UI save values from post processing UI in model
add region to improve readability
start pause constraining
…rect to fix testing errors
…rthis into audio-normalization
…rthis into audio-normalization
…ise-reduced audio
tombogle
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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.
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