# [Skype+Pulseaudio] Son microphone accéléré

## jaypeche

Bonjour à tous,

Je me tourne vers la communauté car j'ai un problème de son avec Skype+Pulseaudio+micro Webcam USB !

[Troll] Bon je sais Skype c'est pas très opensource mais bon ![/Troll]

Lorsque j'effectue un "skype test call" ma voix est accélérée (x2), du coup j'ai une voix robotisée, et pour le coup incompréhensible par mes interlocuteurs.

Ce Bug est assez étrange car aléatoire (Udev?), car parfois il arrive (très rarement) que l'acquisition du son fonctionne correctement et là tout roule ..!

Je précise que j'utilise le microphone intégré à ma Webcam Hercules Deluxe, via le module kernel  ALSA "snd-usb-audio"

J'ai longuement cherché une solution sur le net, fais quelques tests au niveau de la config de pulseaudio qui fonctionne en local, mais je n'ai jamais réussi à obtenir ce que je voulais.

Dernierement, j'ai tenté une montée de version vers skype-4.0.0.8 mais le problème est toujours le même, je désespère !

 :Question:  Quelqu'un aurait-il rencontré ce problème ? Y'a t'il des modifs à faire au niveau de la configuration de pulseaudio, alsa ou udev ? Par exemple pour paramètrer la fréquence d'échantionnage ?

Quelques infos utile :

```
jay@dbox2 ~ $ skype --version

Skype 4.0.0.8

Copyright (c) 2004-2012, Skype

jay@dbox2 ~ $ pulseaudio --version

pulseaudio 1.1

jay@dbox2 ~ $ ls ~/.pulse/

73cf1a1c3538ab0272b8a6520000136d-card-database.x86_64-pc-linux-gnu.gdbm

73cf1a1c3538ab0272b8a6520000136d-default-sink

73cf1a1c3538ab0272b8a6520000136d-default-source

73cf1a1c3538ab0272b8a6520000136d-device-volumes.x86_64-pc-linux-gnu.gdbm

73cf1a1c3538ab0272b8a6520000136d-runtime

73cf1a1c3538ab0272b8a6520000136d-stream-volumes.x86_64-pc-linux-gnu.gdbm

jay@dbox2 ~ $ ll /etc/pulse/

total 20

-rw-r--r-- 1 root root 1269 22 juil. 23:58 client.conf

-rw-r--r-- 1 root root 2299 22 juil. 23:58 daemon.conf

-rw-r--r-- 1 root root 5483 14 sept. 12:43 default.pa

-rw-r--r-- 1 root root 2284 22 juil. 23:58 system.pa
```

Je poste aussi le détail des fichiers de configuration client.conf, default.pa, system.pa :

http://pastebin.com/DnpYeQnt

Merçi d'avance pour votre aide   :Idea: 

----------

## jaypeche

[Troll] @guilc : les logiciels Copyrightés comme Skype seraient-ils "tabou" sur le forum !?? [/Troll]   :Cool: 

----------

## El_Goretto

[off] C'est peut être l'accumulation des mots magiques "skype", "pulseaudio", "udev" qui fait fuir... ajoute systemd tiens, et on va tous avoir les rétines qui saignent  :Smile: 

----------

## jaypeche

Salut,

Effectivement j'ai cru comprendre que pulseaudio c assez hard ouaip ! C'est un peu l'usine à gaz !

Je désespère pas malgré tout..   :Confused: 

----------

## jaypeche

Up !

Je fais un petit retour d'infos...

J'ai pu identifier le problème comme provenant d'un problème de bitrate avec ALSA et/ou le module "snd_usb_audio". Je mets donc hors cause Skype ou pulseaudio, le problème est de plus bas niveau, j'ai pu l'identifier avec arecord :

```
dbox2 jay # arecord -D hw:1,0 -f S16_LE -c1 | aplay

Capture WAVE 'stdin' : Signed 16 bit Little Endian, Fréquence 8000 Hz, Mono

Avertissement: la fréquence n'est pas précise (demandé = 8000Hz,

obtenu = 16000Hz)

         veuillez essayez le greffon de branchement 

Lecture WAVE 'stdin' : Signed 16 bit Little Endian, Fréquence 16000 Hz, Mono
```

Il semble qu'il y ai un problème de bitrate comme je le présageais, le résultat c'est une voix à la Mickey Mouse (bitrate x2 en somme..), Grrr !   :Confused: 

Je ne suis pas le seul dans ce cas : http://mailman.alsa-project.org/pipermail/alsa-devel/2011-July/041665.html

Quelques infos utiles : 

```
dbox2 jay # emerge --info

Portage 2.1.10.49 (default/linux/amd64/10.0, gcc-4.5.3, glibc-2.12.2, 3.2.12-gentoo x86_64)

=================================================================

System uname: Linux-3.2.12-gentoo-x86_64-Intel-R-_Celeron-R-_CPU_3.20GHz-with-gentoo-2.0.3

Timestamp of tree: Mon, 17 Sep 2012 15:45:01 +0000

app-shells/bash:          4.2_p20

dev-java/java-config:     2.1.11-r3

dev-lang/python:          2.7.1-r1, 3.1.4-r3

dev-util/cmake:           2.8.4-r1

dev-util/pkgconfig:       0.27.1

sys-apps/baselayout:      2.0.3

sys-apps/openrc:          0.9.8.4

sys-apps/sandbox:         2.4

sys-devel/autoconf:       2.13, 2.68

sys-devel/automake:       1.9.6-r3, 1.11.1

sys-devel/binutils:       2.21.1-r1

sys-devel/gcc:            4.5.3-r2

sys-devel/gcc-config:     1.4.1-r1

sys-devel/libtool:        2.4-r1

sys-devel/make:           3.82-r1

sys-kernel/linux-headers: 3.1 (virtual/os-headers)

sys-libs/glibc:           2.12.2

Repositories: gentoo x-portage

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* skype-eula"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"

CXXFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--autounmask=n"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://ftp.free.fr/mirrors/ftp.gentoo.org http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"

LANG="fr_FR.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="fr"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X acl alsa amd64 berkdb bzip2 cairo cdr cli cracklib crypt cups cxx dbus dri dts dvb dvd dvdr fortran fuse gdbm gif gnome gphoto2 gpm gstreamer gtk iconv ipv6 jpeg mmx modules mudflap multilib ncurses nls nptl ogg opengl openmp pam pcre png pppd pulseaudio readline samba session spell sse sse2 ssl tcpd tiff unicode v4l v4l2 zlib" ALSA_CARDS="via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DVB_CARDS="usb-dib0700 b2c2-flexcop-pci" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr" LIRC_DEVICES="devinput" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

```

```
dbox2 jay # dmesg | tail

usb 4-2: USB disconnect, device number 3

usbcore: deregistering interface driver snd-usb-audio

usb 4-2: new full-speed USB device number 4 using uhci_hcd

usb 4-2: New USB device found, idVendor=05a9, idProduct=4519

usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0

usb 4-2: Product: USB Camera

usb 4-2: Manufacturer: OmniVision Technologies, Inc.

gspca_main: ov519-2.14.0 probing 05a9:4519

input: ov519 as /devices/pci0000:00/0000:00:09.1/usb4/4-2/input/input10

usbcore: registered new interface driver snd-usb-audio
```

```
dbox2 jay # lsusb -v

Bus 004 Device 004: ID 05a9:4519 OmniVision Technologies, Inc. Webcam Classic

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               1.10

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0         8

  idVendor           0x05a9 OmniVision Technologies, Inc.

  idProduct          0x4519 Webcam Classic

  bcdDevice            1.00

  iManufacturer           1 OmniVision Technologies, Inc.

  iProduct                2 USB Camera

  iSerial                 0 

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength          180

    bNumInterfaces          3

    bConfigurationValue     1

    iConfiguration          0 

    bmAttributes         0x80

      (Bus Powered)

    MaxPower              500mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      0 

      bInterfaceProtocol      0 

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0000  1x 0 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       1

      bNumEndpoints           1

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      0 

      bInterfaceProtocol      0 

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0180  1x 384 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       2

      bNumEndpoints           1

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      0 

      bInterfaceProtocol      0 

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0200  1x 512 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       3

      bNumEndpoints           1

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      0 

      bInterfaceProtocol      0 

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0300  1x 768 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       4

      bNumEndpoints           1

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      0 

      bInterfaceProtocol      0 

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0380  1x 896 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       0

      bNumEndpoints           0

      bInterfaceClass         1 Audio

      bInterfaceSubClass      1 Control Device

      bInterfaceProtocol      0 

      iInterface              0 

      AudioControl Interface Descriptor:

        bLength                 9

        bDescriptorType        36

        bDescriptorSubtype      1 (HEADER)

        bcdADC               1.00

        wTotalLength           30

        bInCollection           1

        baInterfaceNr( 0)       2

      AudioControl Interface Descriptor:

        bLength                12

        bDescriptorType        36

        bDescriptorSubtype      2 (INPUT_TERMINAL)

        bTerminalID             1

        wTerminalType      0x0201 Microphone

        bAssocTerminal          0

        bNrChannels             1

        wChannelConfig     0x0000

        iChannelNames           0 

        iTerminal               0 

      AudioControl Interface Descriptor:

        bLength                 9

        bDescriptorType        36

        bDescriptorSubtype      3 (OUTPUT_TERMINAL)

        bTerminalID             2

        wTerminalType      0x0101 USB Streaming

        bAssocTerminal          0

        bSourceID               1

        iTerminal               0 

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        2

      bAlternateSetting       0

      bNumEndpoints           0

      bInterfaceClass         1 Audio

      bInterfaceSubClass      2 Streaming

      bInterfaceProtocol      0 

      iInterface              0 

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        2

      bAlternateSetting       1

      bNumEndpoints           1

      bInterfaceClass         1 Audio

      bInterfaceSubClass      2 Streaming

      bInterfaceProtocol      0 

      iInterface              0 

      AudioStreaming Interface Descriptor:

        bLength                 7

        bDescriptorType        36

        bDescriptorSubtype      1 (AS_GENERAL)

        bTerminalLink           2

        bDelay                  1 frames

        wFormatTag              1 PCM

      AudioStreaming Interface Descriptor:

        bLength                11

        bDescriptorType        36

        bDescriptorSubtype      2 (FORMAT_TYPE)

        bFormatType             1 (FORMAT_TYPE_I)

        bNrChannels             1

        bSubframeSize           2

        bBitResolution         16

        bSamFreqType            1 Discrete

        tSamFreq[ 0]        16000

      Endpoint Descriptor:

        bLength                 9

        bDescriptorType         5

        bEndpointAddress     0x82  EP 2 IN

        bmAttributes            5

          Transfer Type            Isochronous

          Synch Type               Asynchronous

          Usage Type               Data

        wMaxPacketSize     0x0028  1x 40 bytes

        bInterval               1

        bRefresh                0

        bSynchAddress           0

        AudioControl Endpoint Descriptor:

          bLength                 7

          bDescriptorType        37

          bDescriptorSubtype      1 (EP_GENERAL)

          bmAttributes         0x00

          bLockDelayUnits         0 Undefined

          wLockDelay              0 Undefined

Device Status:     0x0000

  (Bus Powered)

```

Apparement ce bug existe depuis la version 2.6.39 du noyau, je n'avais pas de souçi auparavant ..

Je me suis penché sur cette documentation : http://www.mjmwired.net/kernel/Documentation/sound/alsa/Audiophile-Usb.txt, section : 3.2.3 - Technical details for hackers et ai tenté de passer cette option au chargement du module : 

```

dbox2 linux # modprobe snd_usb_audio index=1 device_setup=0x01
```

J'ai bien essayé de bricoler un peu en suivant cette doc et en jouant sur les bits d'assignation (binaire->hexa) pour obtenir ce que je voulais mais ça ne fonctionne pas mieux ! Bouhhhh   :Confused: 

Quelqu'un aurait-il une idée ou un lien pour m'aider à faire avancer le "schmilblick"   :Question: 

----------

