Giter Club home page Giter Club logo

mbelib's Introduction

Build Status

PATENT NOTICE

This source code is provided for educational purposes only.  It is
a written description of how certain voice encoding/decoding
algorythims could be implemented.  Executable objects compiled or 
derived from this package may be covered by one or more patents.
Readers are strongly advised to check for any patent restrictions or 
licencing requirements before compiling or using this source code.

mbelib 1.3.0

    mbelib supports the 7200x4400 bit/s codec used in P25 Phase 1,
    the 7100x4400 bit/s codec used in ProVoice and the "Half Rate"
    3600x2250 bit/s vocoder used in various radio systems.

Example building instructions on Ubuntu:

sudo apt-get update
sudo apt-get install git make cmake # Update packages
git clone <URL of git repository>   # Something like: [email protected]:USERNAME/mbelib.git
cd mbelib                           # Move into source folder
mkdir build                         # Create build directory
cd build                            # Move to build directory
cmake ..                            # Create Makefile for current system
make                                # Compiles the library
sudo make install                   # Library is installed into computer

mbelib's People

Contributors

9pt7 avatar balr0g avatar edfuentetaja avatar jalakas avatar ra1nb0w avatar szechyjs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mbelib's Issues

Multi-core support

It would be nice if Multi-threading /multi-core support could be added. This would be beneficial to folks using the single board computers.

socat[2628] E read(1, 0x55e2a3b2f7c0, 8192): Bad file descriptor

sudo socat -u stdout udp-listen:7355 | dsd -i – -w dsd_output.wav
Digital Speech Decoder 1.7.0-dev (build:v1.6.0-88-gb674f27)
mbelib version 1.3.0
Writing audio to file dsd_output.wav
Error, couldn't open –
2019/04/05 20:00:39 socat[3583] E read(1, 0x563dc38347c0, 8192): Bad file descriptor

where can I get those equations in the program ?

maybe this is not a issue, i'm really sorry.

I want to know where can I get those equations in the programming, for example eq. 41 in ambe3600x2250.c ? Is there any documentation or article ?
Thank you very much.

Add unit testing

I'm going to need some help from the community on this one. But I'd like to add unit testing to help with testing of pull requests and development. I'm partial to gtest, if anyone else has any other recommendations let me know.

Bump release

Would you be so kind to bump the release version? Mainly #12 is missing now and 433e522 makes it hard to support both HEAD and stable versions.

apco 25 + nice server

Good afternoon, we have a problem, we have a motorola apco 25 radio site in conjunction with a nice server. Nice server is dead, can we replace it with this soft?
Do I understand correctly that it is necessary to mirror traffic from the radio site to the server with soft mblib?

Installing in /usr/lib64

Hi,

mbelib install by default in /usr/local/lib, I can make it to go to /usr by using
-DCMAKE_INSTALL_PREFIX=/usr
But I need to park it in /usr/lib64. Normally -DCMAKE_INSTALL_LIBDIR="lib64" should do it, but it gets ignored.

Would it be possible to make this install in /usr/lib64 or at least respect CMAKE_INSTALL_LIBDIR?

Thanks!

mbelib calls exit() in mbe_synthesizeSpeechf()

This is absolutely awful, especially since it calls it for an invalid parameter. There's no way to do anything else from within a program linking against it, because, well, exit() was just called.

The best solution if you want to modify the API is to make mbe_synthesizeSpeechf() return an int / error code, with it returning, say, -1 in that case and, say, 0 otherwise.

The best solution if you don't want to modify the API, and also personally the one I recommend, is simply if the value is invalid, print a warning and then just set it to 3 - this gives you 4 unvoiced bands, which is comparable to the stupid FFT-of-white-noise method DVSI wants you to do, and is also the DSD default.

In other words,
if ((uvquality < 1) || (uvquality > 64))
{
printf ("\nmbelib: Error - uvquality must be within the range 1 - 64\n");
exit (1);
}

Becomes:
if ((uvquality < 1) || (uvquality > 64))
{
printf ("\nmbelib: Error - uvquality must be within the range 1 - 64, setting to default value of 3\n");
uvquality = 3;
}

New release tag needed so .tar.gz file of current cmake code can be used for homebrew install

Hello,

I've been playing around with mbelib and DSD lately (and forced to use windows to do so) and was pleased to see your repo with a build process for both that works on OS X.

I thought it would be even better if the mbelib and dsd could be installed using homebrew. I've created a local homebrew Formula that appears to be working locally but homebrew really wants a tarball to download, and not a git repository (which requires passing the --HEAD flag to brew install).

Would you be so kind as to add a new release which should result in a new tarball being made available here:

https://github.com/szechyjs/mbelib/releases

I'll do the same and make a homebrew formula for your DSD repo if this works so a similar release tag and link to tarball would be appreciated on your DSD repo.

Here is my work in progress (not fully tested) mbelib homebrew formula if you want to give it a go. I'm not really familiar with cmake so if you see anything wrong any guidance is appreciated:

https://gist.github.com/grempe/6196892

Cheers,

Glenn

dpkg-buildpackage: error: failed to sign .dsc file

Hello,
I got an error in bullseye 32bit, use this script in RPi5B bookworm OS 32bit no problem.

OS, Raspberry pi 4B2G

lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye


install build error logs,

image

 dpkg-genchanges  >../libmbe_1.3.0_armhf.changes
dpkg-genchanges: info: including full source code in upload
 dpkg-source --after-build .
dpkg-buildpackage: info: full upload; Debian-native package (full source is included)
 signfile libmbe_1.3.0.dsc
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: skipped "Jared Szechy <[email protected]>": No secret key
gpg: dpkg-sign.dpUqhT5K/libmbe_1.3.0.dsc: clear-sign failed: No secret key

dpkg-buildpackage: error: failed to sign .dsc file

install-softmbe.sh

#!/bin/bash
set -euxo pipefail

BUILD_PACKAGES="git build-essential debhelper cmake libprotobuf-dev protobuf-compiler"

apt update
apt -y install --no-install-recommends $BUILD_PACKAGES libcodecserver-dev


pushd /tmp

echo "+ Build MBELIB..."
git clone https://github.com/szechyjs/mbelib.git
cd mbelib
dpkg-buildpackage
cd ..
rm -rf mbelib
dpkg -i libmbe1_1.3.0_*.deb libmbe-dev_1.3.0_*.deb

echo "+ Build codecserver-softmbe..."
git clone https://github.com/knatterfunker/codecserver-softmbe.git
cd codecserver-softmbe
# ignore missing library linking error in dpkg-buildpackage command
sed -i 's/dh \$@/dh \$@ --dpkg-shlibdeps-params=--ignore-missing-info/' debian/rules
dpkg-buildpackage
cd ..
rm -rf codecserver-softmbe

apt remove -y --purge --autoremove $BUILD_PACKAGES

dpkg -i /tmp/libmbe1_1.3.0_*.deb
dpkg -i /tmp/codecserver-driver-softmbe_0.0.1_*.deb

rm -f /tmp/libmbe* /tmp/codecserver-driver-softmbe*

cat >> /etc/codecserver/codecserver.conf << _EOF_

# add softmbe
[device:softmbe]
driver=softmbe
_EOF_


echo;echo;echo
echo "Installation successful. Please reboot."

popd

Does it only support decode?

It seems this library only supports AMBE decoding function, and is it correct? I want to study how to encode the sampled PCM voice data into AMBE file, and then decode AMBE file back to PCM voice file. Does this library provide the encoding function or any clue? Thanks.

cmake warning

Using cmake version 3.0.2 (mkdir build; cd build ; cmake ../)
I get a warning that test/CMakeLists.txt line 16 is using the target name "test" which is now reserved or not valid for certain CMake features, such as generator expressions, and may result in undefined behavior.
This warning is for project developers. Use -Wno-dev to suppress it.

I can use cmake -Wno-dev ../ and ignore it, but I thought I'd let you know.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.