标签: nspeex

Windows Phone使用NSpeex编码和解码音频.遇到解码问题?

我正在尝试使用Nspeex对录制的音频进行编码,然后通过互联网进行传输并在另一端进行解码.我正在Windows Phone 7/8中完成所有这些工作.要编码和解码我正在使用以下代码.但是在解码时我没有正确地恢复结果,我可以再次播放.任何人都可以为我提供在WP7/8录制的音频上运行的编码和解码代码:

private static Microphone mic = Microphone.Default;

        private static byte[] EncodeSpeech(byte[] buf, int len)
        {
            BandMode mode = GetBandMode(mic.SampleRate);
            SpeexEncoder encoder = new SpeexEncoder(mode);

            // set encoding quality to lowest (which will generate the smallest size in the fastest time)
            encoder.Quality = 1;
            int inDataSize = len / 2;

            // convert to short array
            short[] data = new short[inDataSize];
            int sampleIndex = 0;
            for (int index = 0; index < len; index += 2, sampleIndex++)
            {
                data[sampleIndex] = …
Run Code Online (Sandbox Code Playgroud)

c# audio encoding windows-phone-7 nspeex

8
推荐指数
1
解决办法
1517
查看次数

Silverlight Speex以极快的速度播放

我正在使用Speex对原始数据进行编码,但在对数据进行解码后,音频以更快的速度播放,因为它会让您听起来像花栗鼠.我正在使用NSpeex和Silverlight 4.

8kHz Sampling

编码功能:

    JSpeexEnc encoder = new JSpeexEnc();
    int rawDataSize = 0;
    public byte[] EncodeAudio(byte[] rawData)
    {
        var encoder = new SpeexEncoder(BandMode.Narrow);
        var inDataSize = rawData.Length / 2;
        var inData = new short[inDataSize];

        for (var index = 0; index < rawData.Length; index += 2)
        {
            inData[index / 2] = BitConverter.ToInt16(rawData, index);
        }
        inDataSize = inDataSize - inDataSize % encoder.FrameSize;

        var encodedData = new byte[rawData.Length];
        var encodedBytes = encoder.Encode(inData, 0, inDataSize, encodedData, 0, encodedData.Length);

        byte[] encodedAudioData = …
Run Code Online (Sandbox Code Playgroud)

audio silverlight-4.0 nspeex wavmss

7
推荐指数
1
解决办法
618
查看次数

标签 统计

audio ×2

nspeex ×2

c# ×1

encoding ×1

silverlight-4.0 ×1

wavmss ×1

windows-phone-7 ×1