Commit 6f1812f8 authored by Elie KHOURY's avatar Elie KHOURY
Browse files

initial commit

parents
*~
*.swp
*.pyc
.DS_Store
logs
replay
*.db
.installed.cfg
parts
develop-eggs
bin
eggs
downloads
lib
src
sphinx
.project
.pydevproject
.settings
*.egg-info
.mr.developer.cfg
Bob satellite package for speaker recognition protocol using Voxforge Database
==============================================================================
`Voxforge`_ offers a collection transcribed speech for use with **Free** and **Open Source Speech Recognition Engines**.
In this package, we design a speaker recognition protocol that uses a subset of the **english audio files** (only 6561 files) belonging to **30 speakers**.
This subset is splitted into three equivalent parts: Training (10 speakers), Development (10 speakers) and Test (10 speakers) sets.
This package serves as an example of speaker recognition database while testing `xbob.speaker_recognition`_.
The `xbob.speaker_recognition`_ is developed at Idiap during its participation to the `NIST SRE 2012 evaluation`_. If you use this package and/or its results, please cite the following
publications:
1. The original paper presented at the NIST SRE 2012 workshop::
@inproceedings{Khoury_NISTSRE_2012,
author = {Khoury, Elie and El Shafey, Laurent and Marcel, S{\'{e}}bastien},
month = {dec},
title = {The Idiap Speaker Recognition Evaluation System at NIST SRE 2012},
booktitle = {NIST Speaker Recognition Conference},
year = {2012},
location = {Orlando, USA},
organization = {NIST},
pdf = {http://publications.idiap.ch/downloads/papers/2012/Khoury_NISTSRE_2012.pdf}
}
2. Bob as the core framework used to run the experiments::
@inproceedings{Anjos_ACMMM_2012,
author = {A. Anjos and L. El Shafey and R. Wallace and M. G\"unther and C. McCool and S. Marcel},
title = {Bob: a free signal processing and machine learning toolbox for researchers},
year = {2012},
month = oct,
booktitle = {20th ACM Conference on Multimedia Systems (ACMMM), Nara, Japan},
publisher = {ACM Press},
url = {http://publications.idiap.ch/downloads/papers/2012/Anjos_Bob_ACMMM12.pdf},
}
Installation
------------
Just download this package and uncompressed it locally::
$ wget http://pypi.python.org/packages/source/x/xbob.subvoxforge/xbob.db.subvoxforge-0.0.1.zip
$ unzip xbob.db.subvoxforge-0.0.1.zip
$ cd xbob.db.subvoxforge
Use buildout to bootstrap and have a working environment ready for
experiments::
$ python bootstrap
$ ./bin/buildout
This also requires that bob (>= 1.2.0) is installed.
Getting the data
~~~~~~~~~~~~~~~~
The data can be downloaded and extracted by running that takes as input the location in which the data will be downloaded::
$ ./download_and_untar.sh PATH/TO/WAV/DIRECTORY
.. _Voxforge: http://www.voxforge.org/
.. _xbob.speaker_recognition: https://github.com/bioidiap/xbob.speaker_recognition
.. _NIST SRE 2012 evaluation: http://www.nist.gov/itl/iad/mig/sre12.cfm
##############################################################################
#
# Copyright (c) 2006 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Bootstrap a buildout-based project
Simply run this script in a directory containing a buildout.cfg.
The script accepts buildout command-line options, so you can
use the -c option to specify an alternate configuration file.
"""
import os
import shutil
import sys
import tempfile
from optparse import OptionParser
tmpeggs = tempfile.mkdtemp()
usage = '''\
[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options]
Bootstraps a buildout-based project.
Simply run this script in a directory containing a buildout.cfg, using the
Python that you want bin/buildout to use.
Note that by using --find-links to point to local resources, you can keep
this script from going over the network.
'''
parser = OptionParser(usage=usage)
parser.add_option("-v", "--version", help="use a specific zc.buildout version")
parser.add_option("-t", "--accept-buildout-test-releases",
dest='accept_buildout_test_releases',
action="store_true", default=False,
help=("Normally, if you do not specify a --version, the "
"bootstrap script and buildout gets the newest "
"*final* versions of zc.buildout and its recipes and "
"extensions for you. If you use this flag, "
"bootstrap and buildout will get the newest releases "
"even if they are alphas or betas."))
parser.add_option("-c", "--config-file",
help=("Specify the path to the buildout configuration "
"file to be used."))
parser.add_option("-f", "--find-links",
help=("Specify a URL to search for buildout releases"))
options, args = parser.parse_args()
######################################################################
# load/install setuptools
to_reload = False
try:
import pkg_resources
import setuptools
except ImportError:
ez = {}
try:
from urllib.request import urlopen
except ImportError:
from urllib2 import urlopen
# XXX use a more permanent ez_setup.py URL when available.
exec(urlopen('https://bitbucket.org/pypa/setuptools/raw/0.7.2/ez_setup.py'
).read(), ez)
setup_args = dict(to_dir=tmpeggs, download_delay=0)
ez['use_setuptools'](**setup_args)
if to_reload:
reload(pkg_resources)
import pkg_resources
# This does not (always?) update the default working set. We will
# do it.
for path in sys.path:
if path not in pkg_resources.working_set.entries:
pkg_resources.working_set.add_entry(path)
######################################################################
# Try to best guess the version of buildout given setuptools
if options.version is None:
try:
from distutils.version import LooseVersion
package = pkg_resources.require('setuptools')[0]
v = LooseVersion(package.version)
if v < LooseVersion('0.7'):
options.version = '2.1.1'
except:
pass
######################################################################
# Install buildout
ws = pkg_resources.working_set
cmd = [sys.executable, '-c',
'from setuptools.command.easy_install import main; main()',
'-mZqNxd', tmpeggs]
find_links = os.environ.get(
'bootstrap-testing-find-links',
options.find_links or
('http://downloads.buildout.org/'
if options.accept_buildout_test_releases else None)
)
if find_links:
cmd.extend(['-f', find_links])
setuptools_path = ws.find(
pkg_resources.Requirement.parse('setuptools')).location
requirement = 'zc.buildout'
version = options.version
if version is None and not options.accept_buildout_test_releases:
# Figure out the most recent final version of zc.buildout.
import setuptools.package_index
_final_parts = '*final-', '*final'
def _final_version(parsed_version):
for part in parsed_version:
if (part[:1] == '*') and (part not in _final_parts):
return False
return True
index = setuptools.package_index.PackageIndex(
search_path=[setuptools_path])
if find_links:
index.add_find_links((find_links,))
req = pkg_resources.Requirement.parse(requirement)
if index.obtain(req) is not None:
best = []
bestv = None
for dist in index[req.project_name]:
distv = dist.parsed_version
if _final_version(distv):
if bestv is None or distv > bestv:
best = [dist]
bestv = distv
elif distv == bestv:
best.append(dist)
if best:
best.sort()
version = best[-1].version
if version:
requirement = '=='.join((requirement, version))
cmd.append(requirement)
import subprocess
if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=setuptools_path)) != 0:
raise Exception(
"Failed to execute command:\n%s",
repr(cmd)[1:-1])
######################################################################
# Import and run buildout
ws.add_entry(tmpeggs)
ws.require(requirement)
import zc.buildout.buildout
if not [a for a in args if '=' not in a]:
args.append('bootstrap')
# if -c was provided, we push it back into args for buildout' main function
if options.config_file is not None:
args[0:0] = ['-c', options.config_file]
zc.buildout.buildout.main(args)
shutil.rmtree(tmpeggs)
; vim: set fileencoding=utf-8 :
; Elie Khoury <Elie.Khoury@idiap.ch>
; Thu Aug 22 20:38:47 CEST 2013
[buildout]
parts = scripts
develop = .
eggs = bob>=1.2.0
xbob.db.verification.filelist
xbob.db.subvoxforge
newest = false
; Look at this directory to find bob
; prefixes = /idiap/group/torch5spro/releases/bob-1.2.0/install/linux-x86_64-release
[scripts]
recipe = xbob.buildout:scripts
# Elie Khoury <Elie.Khoury@idiap.ch>
# Date: Thu Aug 22 18:17:29 CEST 2013
#
# Copyright (C) 2012-2013 Idiap Research Institute, Martigny, Switzerland
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This script will download the audio files used in the protocol.
# It will first download the tgz files, and then decompress them.
if [ "$#" -ne 1 ]; then
echo "Usage: $0 DATA_DIR"
exit 1
fi
baselink="http://www.repository.voxforge1.org/downloads/SpeechCorpus/Trunk/Audio/Main/16kHz_16bit"
directory=$1
mkdir -p $directory
while read filename; do
basefilename=`basename $filename .tgz`
echo $basefilename
if [ ! -d "$directory/$basefilename" ]; then
wget $baselink/$filename
tar -zxvf $filename
mv $basefilename $directory/.
rm $filename
fi
done < xbob/db/subvoxforge/list_of_tgz_files.lst # where the list of files is stored
from setuptools import setup, find_packages
setup(
name='xbob.paper.tpami2013',
version='0.0.1a1',
description='Example on how to use the scalable implementation of PLDA and how to reproduce experiments of the article',
url='http://pypi.python.org/pypi/xbob.paper.tpami2013',
license='GPLv3',
author='Laurent El Shafey',
author_email='Laurent.El-Shafey@idiap.ch',
long_description=open('README.rst').read(),
packages=find_packages(),
include_package_data=True,
install_requires=[
'setuptools',
'xbob.db.verification.filelist',
],
namespace_packages = [
'xbob',
'xbob.db',
],
classifiers = [
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Education',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
'Natural Language :: English',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
],
)
#see http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
__import__('pkg_resources').declare_namespace(__name__)
#see http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
__import__('pkg_resources').declare_namespace(__name__)
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
# @author: Elie Khoury <Elie.Khoury@idiap.ch>
# @date: Thu Aug 22 17:43:04 CEST 2013
#
# Copyright (C) 2012-2013 Idiap Research Institute, Martigny, Switzerland
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Details about the Voxforge database can be found here:
http://www.voxforge.org/
"""
from .query import Database
__all__ = dir()
Dcoetzee-20110429-bne.tgz
Dcoetzee-20110429-bqy.tgz
Dcoetzee-20110429-bzi.tgz
Dcoetzee-20110429-cmf.tgz
Dcoetzee-20110429-cxg.tgz
Dcoetzee-20110429-cxm.tgz
Dcoetzee-20110429-czn.tgz
Dcoetzee-20110429-dac.tgz
Dcoetzee-20110429-fmi.tgz
Dcoetzee-20110429-ghe.tgz
Dcoetzee-20110429-gre.tgz
Dcoetzee-20110429-hsi.tgz
Dcoetzee-20110429-hvo.tgz
Dcoetzee-20110429-hvv.tgz
Dcoetzee-20110429-jdw.tgz
Dcoetzee-20110429-mli.tgz
Dcoetzee-20110429-mzz.tgz
Dcoetzee-20110429-ono.tgz
Dcoetzee-20110429-plk.tgz
Dcoetzee-20110429-qvd.tgz
Dcoetzee-20110429-rmx.tgz
Dcoetzee-20110429-tmu.tgz
Dcoetzee-20110429-top.tgz
Dcoetzee-20110429-vad.tgz
Dcoetzee-20110429-vmo.tgz
Dcoetzee-20110429-wuk.tgz
Dcoetzee-20110429-ygs.tgz
Decent-20110516-cso.tgz
Decent-20110516-egq.tgz
Decent-20110516-evd.tgz
Decent-20110516-hmv.tgz
Decent-20110516-ile.tgz
Decent-20110516-mdq.tgz
Decent-20110516-qjb.tgz
Decent-20110516-qnp.tgz
Decent-20110516-qsa.tgz
Decent-20110516-tco.tgz
Decent-20110516-tgn.tgz
Decent-20110516-ugs.tgz
FrozenFire-20080827-bnh.tgz
FrozenFire-20080827-cnj.tgz
FrozenFire-20080827-dcw.tgz
FrozenFire-20080827-gqa.tgz
FrozenFire-20080827-juh.tgz
FrozenFire-20080827-kvl.tgz
FrozenFire-20080827-mij.tgz
FrozenFire-20080827-mkg.tgz
FrozenFire-20080827-qpg.tgz
FrozenFire-20080827-qzs.tgz
FrozenFire-20080827-xbz.tgz
FrozenFire-20080827-yeq.tgz
glenton-20090924-apc.tgz
glenton-20090924-cov.tgz
glenton-20090924-dhc.tgz
glenton-20090924-eho.tgz
glenton-20090924-ggk.tgz
glenton-20090924-iaz.tgz
glenton-20090924-iij.tgz
glenton-20090924-lpy.tgz
glenton-20090924-mad.tgz
glenton-20090924-myq.tgz
glenton-20090924-nmb.tgz
glenton-20090924-ojx.tgz
glenton-20090924-oqo.tgz
glenton-20090924-plp.tgz
glenton-20090924-puv.tgz
glenton-20090924-qpb.tgz
glenton-20090924-ryq.tgz
glenton-20090924-sve.tgz
glenton-20090924-vzf.tgz
glenton-20090924-yia.tgz
glenton-20090924-ylv.tgz
glenton-20091002-npj.tgz
JayCutlersBrother-20080919-btn.tgz
JayCutlersBrother-20080919-bvy.tgz
JayCutlersBrother-20080919-dmf.tgz
JayCutlersBrother-20080919-htt.tgz
JayCutlersBrother-20080919-ick.tgz
JayCutlersBrother-20080919-jaf.tgz
JayCutlersBrother-20080919-mbz.tgz
JayCutlersBrother-20080919-nlx.tgz
JayCutlersBrother-20080919-ovg.tgz
JayCutlersBrother-20080919-psp.tgz
JayCutlersBrother-20080919-pus.tgz
JayCutlersBrother-20080919-rih.tgz
JayCutlersBrother-20080919-ryd.tgz
JayCutlersBrother-20080919-siv.tgz
JayCutlersBrother-20080919-szm.tgz
JayCutlersBrother-20080919-uau.tgz
JayCutlersBrother-20080919-vdn.tgz
JayCutlersBrother-20080919-vev.tgz
JayCutlersBrother-20080919-vre.tgz
JayCutlersBrother-20080919-wqq.tgz
JohanLingen-20080302-hwq.tgz
JohanLingen-20080302-vvd.tgz
JohanLingen-20080304-fld.tgz
JohanLingen-20080304-fse.tgz
JohanLingen-20080304-lpt.tgz
JohanLingen-20080304-myv.tgz
JohanLingen-20080304-wfq.tgz
JohanLingen-20080306-dbl.tgz
JohanLingen-20080306-nov.tgz
JohanLingen-20080306-utt.tgz
JohanLingen-20080306-xvq.tgz
JohanLingen-20080306-zqm.tgz
lindavg-20081007-adc.tgz
lindavg-20081007-ahj.tgz
lindavg-20081007-cqp.tgz
lindavg-20081007-eym.tgz
lindavg-20081007-fap.tgz
lindavg-20081007-heh.tgz
lindavg-20081007-jyk.tgz
lindavg-20081007-lxd.tgz
lindavg-20081007-ocy.tgz
lindavg-20081007-ovc.tgz
lindavg-20081007-oyi.tgz
lindavg-20081007-snd.tgz
lindavg-20081007-trz.tgz
lindavg-20081007-wxe.tgz
lindavg-20081007-wyi.tgz
mikethecoach-20111106-brd.tgz
mikethecoach-20111106-jdw.tgz
mikethecoach-20111106-phk.tgz
mikethecoach-20111106-vqm.tgz
mikethecoach-20111106-xbo.tgz
mikethecoach-20111106-xez.tgz
mikethecoach-20111106-xpw.tgz
mikethecoach-20111106-xvg.tgz
mikethecoach-20111106-zrj.tgz
paddy-20080911-abh.tgz
paddy-20080911-bop.tgz
paddy-20080911-bua.tgz
paddy-20080911-crt.tgz
paddy-20080911-eeo.tgz
paddy-20080911-fdo.tgz
paddy-20080911-hun.tgz
paddy-20080911-jbe.tgz
paddy-20080911-jtv.tgz
paddy-20080911-jyl.tgz
paddy-20080911-kaf.tgz
paddy-20080911-qzs.tgz
paddy-20080911-txn.tgz
paddy-20080911-tyg.tgz
paddy-20080911-uwe.tgz
paddy-20080911-wby.tgz
paddy-20080911-xep.tgz
paddy-20080911-xuz.tgz
paddy-20080911-ynd.tgz
polerizer-20091226-cxd.tgz
polerizer-20091226-der.tgz
polerizer-20091226-flf.tgz
polerizer-20091226-iie.tgz
polerizer-20091226-noj.tgz
polerizer-20091226-nws.tgz
polerizer-20091226-ooi.tgz
polerizer-20091226-rel.tgz
polerizer-20091226-vdf.tgz
polerizer-20091226-wre.tgz
polerizer-20091231-nfw.tgz
polerizer-20091231-oon.tgz
polerizer-20091231-upo.tgz
rortiz-20100203-gat.tgz
rortiz-20100203-lge.tgz
rortiz-20100203-oxw.tgz
rortiz-20100203-pre.tgz
rortiz-20100203-vhy.tgz
rortiz-20100203-yin.tgz
rortiz-20100209-cys.tgz
rortiz-20100209-ffs.tgz
rortiz-20100209-hzh.tgz
rortiz-20100209-ioj.tgz
rortiz-20100209-nuj.tgz
rortiz-20100209-omx.tgz
rortiz-20100209-orz.tgz
rortiz-20100209-uyg.tgz
rortiz-20100209-vqr.tgz
Saul-20080221-arb.tgz
Saul-20080221-cjc.tgz
Saul-20080221-ftq.tgz
Saul-20080221-iiw.tgz
Saul-20080221-qwn.tgz
Saul-20080221-xai.tgz
Saul-20090208-uct.tgz
scottlacysalley-20080825-bbl.tgz
scottlacysalley-20080825-ezz.tgz
scottlacysalley-20080825-fce.tgz
scottlacysalley-20080825-jce.tgz
scottlacysalley-20080825-jhu.tgz
scottlacysalley-20080825-obq.tgz
scottlacysalley-20080825-whg.tgz
Shane-20080602-byw.tgz
Shane-20080602-kmc.tgz
Shane-20080602-rgd.tgz
Shane-20080602-xrq.tgz
Shane-20080603-yfs.tgz
Shane-20080604-icj.tgz
Shane-20080606-fbp.tgz
Shane-20080606-qgj.tgz
Shane-20080606-vwo.tgz
sharrington-20081018-blu.tgz
sharrington-20081018-lmj.tgz
sharrington-20081018-mux.tgz
sharrington-20081018-ncv.tgz
sharrington-20081018-rgy.tgz
sharrington-20081018-ucg.tgz
sharrington-20081018-uuu.tgz
sharrington-20081018-ygq.tgz
sharrington-20081018-yqy.tgz
sharrington-20081018-zkw.tgz
soulphox-20100119-qmd.tgz
soulphox-20100119-wiz.tgz
soulphox-20100120-avm.tgz
soulphox-20100120-bmy.tgz
soulphox-20100120-cqs.tgz
soulphox-20100120-dfy.tgz
soulphox-20100120-dkm.tgz
soulphox-20100120-hjj.tgz
soulphox-20100120-oau.tgz
soulphox-20100120-pyl.tgz
soulphox-20100120-tco.tgz
soulphox-20100120-tnv.tgz
soulphox-20100121-axc.tgz
soulphox-20100121-elr.tgz
soulphox-20100121-kcm.tgz
soulphox-20100121-nga.tgz