* ### __Change to SIGMA__
* Fixed issues with moving to the previous step.
* Added support for using specific synthesis voices via the Sigma client configuration.
* Updated the Sigma app to use caching for speech synthesis.
### __Changes to Components__
* Added `SpeechSynthesisCache` component to `Microsoft.Psi.Speech` to implement a cache for generated speech synthesis content.
* The Azure-based `SpeechSynthesizer` component from `Microsoft.Psi.CognitiveServices.Speech` can now cache the generated utterances
for future use (future identical requests do not need to go to the cloud, speeding up synthesis). The developer can also now select (via configuration) whether the audio buffers are streamed in real-time or as they arrive, and how close ahead of real time the generated audio buffers are streamed. These options allow for better controlling playback and avoiding drops.
### __Changes to Audio__
* Added a `Streamline` operator for audio streams that allows for normalizing gaps and overlaps in the audio buffer stream based on different methods (Concatenate, Pleat, Unpleat)
* Added a batch processing task for exporting audio streams to wav files
### __Changes to PsiStudio and Visualization__
* Improved robustness of audio playback and addressed a number of issues that created drift between audio and visual playback.
* Run batch task processing menu is now split into submenus by batch task processing namespace.
* Added ability to export audio streams (or selections thereof) to a wav file.
### __Changes to Microsoft.Psi.Data__
* Added a `SessionImporter.OpenStream` overload that allows for providing a `[PartitionName]:StreamName` stream specification. This simplifies the configuration of batch processing tasks where input streams need to be specified, eliminating the need for specifying the partition separately. The existing batch tasks were adjusted to leverage this feature.
### __Changes to Runtime__
* Introduced `Merge` interval operator to compute a non-overlapping set of intervals that covers a given set of (potentially overlapping intervals)
* Update per CR
* Fixed an issue to support autostart with LLM generated tasks. (#309)
* Fixed an issue whereby complex steps with many substeps would overrun the task panel display borders.
For example, the store name of "recording" works well, but if you have a store called "recording (1)" then the whitespace character was not being properly escaped
* refactor: specify MediaEncodingSubtype in the frame reader so that there's no need for software bitmap conversion of the pixel data. This currently has the bool flags for OutputEncodedImage and OutputImage unique, meaning only one of the emitters can output at a time, while prioritizing the EncodedImage first if both bools are true.
* fix: it could either be the encoded image or encoded image camera view that wins as the emitter for nv12.
* fix: build with the code analysis enabled.
* feat: throw an unsupported exception for specifying both encoded and regular image emitters.
When running out of space, the call to `MemoryMappedFile.CreateFromFile` throws the following exception: `System.IO.IOException: 'There is not enough space on the disk'`.
The file handle still remains open in this case, and doesn't let other processes on the system delete/modify it.
* feat: includes an optional audio stream to the media capture instance for PVCam.
* refactor: create a new component for the media capture microphone. revert changes from PVCamera to master.
* docs: change the description for MediaCaptureMicrophone.
* refactor: implements the IProducer interface for AudioBuffer.
fix: option to downsample the two-channel audio data based on the microphone config.
feat: specify the audio channel number to save if you are downsampling the audio data.
* docs: minor exception message fix.
* fix: only check for the channel number when the audio data is requested for downsampling.
* docs: change wording of "index" to "audio channel number" to avoid misinterpretation.
* fix: create an audio format based on the media capture's audio source.
feat: `SingleChannel` output property for the audio buffer.
feat: dictionary to map subtype strings to WaveFormatTags.
* refactor: minor formatting edit.
* fix: allocate enough memory for raw audio data with block align.
* more checks in microphone, some refactoring of data export
* added documentation to the readme
* small change to microphone init
* removed a bit more unused code