Transformed-space sampling -------------------------- The distribution of the corrupted speech does not have a closed form. This is because of the non-linearity in the mismatch function (which relates the signals of the speech, noise, and corrupted speech). The compensation methods in :ref:`parametrised` therefore approximate the corrupted speech distribution. The papers in the :ref:`bibliography` introduce an alternative approximation that uses sampling. In the limit, it finds the exact likelihood of one observation. The classes and functions below implement this method. :class:`SampleObservationDensity ` uses sequential importance resampling (see :func:`sequentialImportanceResample `\ ) to evaluate the integral in the likelihood expression. This integral is most naturally written over the speech, noise and the phase factor, but, as the papers in the :ref:`bibliography` detail, can be transformed into an integral over the phase factor and a substitute variable. In this domain, the integrand is factorised (see :class:`QuasiConditionalFactorGenerator `\ ) and a proposal distribution (see :class:`proposalForFactor `\ ) is defined. It then becomes feasible to apply sequential importance re-sampling. .. autoclass:: noise.sample_observation_density.SampleObservationDensity :members: :undoc-members: .. autoclass:: noise.factor_integrand.QuasiConditionalFactorGenerator :members: given .. autoclass:: noise.factor_integrand.PostponedFactorGenerator :members: Target density ^^^^^^^^^^^^^^ .. autoclass:: noise.factor_integrand.SubstituteFactor :members: :undoc-members: .. autoclass:: noise.factor_integrand.SubstituteFactorOneSource :members: :undoc-members: Proposal distribution ^^^^^^^^^^^^^^^^^^^^^ .. autofunction:: noise.factor_integrand.proposalForFactor .. autoclass:: noise.sample_observation_density.PhaseProposer :members: :undoc-members: .. autoclass:: noise.sample_observation_density.AlwaysProposer :members: :undoc-members: .. autoclass:: noise.sample_observation_density.DummyFactor :members: :undoc-members: .. autofunction:: noise.sample_observation_density.oneWeighter Partial samples ^^^^^^^^^^^^^^^ .. autoclass:: noise.factor_integrand.PartialSample(channelPhase = numpy.empty ((0, 1)), substitute = numpy.empty ((0, 1))) :members: :undoc-members: .. autofunction:: noise.factor_integrand.appendChannelPhase .. autofunction:: noise.factor_integrand.appendSubstitute