Pyaudio управлять устройствами

Простой скрипт:

import pyaudio
p = pyaudio.PyAudio()
print(p.get_device_count())

Печать 0

Поэтому, когда я пытаюсь играть с wav или записывать с микрофона, я получаю следующие ошибки.

OSError: [Errno -9996] Недопустимое устройство вывода (нет устройства вывода по умолчанию)

OSError: [Errno -9996] Недопустимое устройство ввода (нет устройства вывода по умолчанию)

Вот что я почти сделал с момента установки рабочего стола ubuntu20.04.

  1. Установите Sublime Text Editor из центра программного обеспечения ubuntu
  2. Измените настройки Sublime 2a. Предпочтения -> Цветовая схема... -> Брейкеры 2b. Просмотр -> Боковая панель -> Показать открытые файлы
  3. Добавить возвышенное в избранное
  4. Добавить терминал в избранное
  5. Изменить фоновое изображение (не выполнено)
  6. sudo apt-get update
  7. sudo apt-get install -y build-essential checkinstall
  8. sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
  9. cd / usr / src
  10. sudo wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
  11. sudo tar xzf Python-3.6.9.tgz
  12. компакт-диск Python-3.6.9
  13. sudo./configure --enable-optimizations
  14. sudo сделать altinstall
  15. Скопируйте папку проигрывателя Papinhio проекта в /home/chris/Documents/Python из разделов Windows 10.
  16. Скопируйте папку Музыка из раздела Windows 10.
  17. Установите сервер Xampp с apachefriends.org (chmod +x xampp-linux-x64-7.4.6-0-installer.run)
  18. Запустить сервер Apache
  19. Запустить сервер Mysql
  20. apt установить python3-pip

  21. Загрузите соединитель mysql для источника Python (https://pypi.org/project/mysql-connector-python/)

  22. cd /home/chris/Downloads/mysql-connector-python-8.0.20
  23. сборка python3.6 setup.py
  24. установка python3.6 setup.py

  25. Запуск /home/chris/Documents/Python/Papinhio player/version 2/main/test/insert_songs.py успешно

  26. pip3 установить fontawesome
  27. sudo apt-get update -y
  28. sudo apt-get install -y fonts-font-awesome
  29. pip3 установить pypandoc
  30. pip3 установить py-pandoc
  31. Загрузка с: https://pypi.org/project/pypandoc/, затем сборка python3.6 setup.py и установка python3.6 setup.py
  32. Загрузите fontawesome с https://pypi.org/project/fontawesome/, затем установите python3.6 setup.py и установите python3.6 setup.py
  33. Скачано с: https://pypi.org/project/python-shout/
  34. sudo apt-get update -y
  35. sudo apt-get install -y pkg-config
  36. sudo pip3 установить подушку

  37. Загрузите подушку с https://pypi.org/project/Pillow/2.1.0/

  38. сборка python3.6 setup.py
  39. установка python3.6 setup.py
  40. pip3 установить python-resize-image
  41. Загрузите изображение для изменения размера с https://pypi.org/project/python-resize-image/
  42. сборка python3.6 setup.py
  43. установка python3.6 setup.py
  44. pip3 установить pyaudio
  45. pip3 установить PyAudio
  46. Загрузите portaudio с http://portaudio.com/download.html 50./configure & make
  47. сделать установку
  48. Загрузите pyaudio с https://pypi.org/project/PyAudio/
  49. сборка python3.6 setup.py
  50. python3.6 setuo.py установить
  51. apt-get установить portaudio19-dev
  52. apt-get установить python3-all-dev
  53. pip3 установить numpy
  54. subl /etc/asound.conf pcm.!default {тип hw card 1 device 0 rate 44100}

    ctl.!default {type hw
    card 0}

  55. sudo apt-get purge bluez-alsa

  56. sudo add-apt-repository ppa:ubuntu-audio-dev / alsa-daily
  57. sudo apt-get update
  58. sudo apt-get dist-upgrade
  59. sudo apt-get install --reinstall dkms linux-image-generic linux-headers-generic linux-tools-generic linux-source alsa-firmware-loaders alsa-base alsa-utils alsa-source alsa-tools python3-alsaaudio python3-pyalsa
  60. sudo apt-get install libasound-dev
  61. sudo alsactl init
  62. cp "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" "/usr/./libstdc++.so.6"
  63. cp /usr/share/alsa/alsa.conf /usr/share/alsa/alsa.conf.back 70 subl /usr/share/alsa/alsa.conf

# # Файл конфигурации библиотеки ALSA #

# pre-load the configuration files

@hooks [
  {
      func load
      files [
          "/etc/alsa/conf.d"
          "/etc/asound.conf"
          "~/.asoundrc"
      ]
      errors false
  }
]

# load card-specific configuration files (on request)

cards.@hooks [
  {
      func load
      files [
          {
              @func concat
              strings [
                  { @func datadir }
                  "/cards/aliases.conf"
              ]
          }
      ]
  }
  {
      func load_for_all_cards
      files [
          {
              @func concat
              strings [
                  { @func datadir }
                  "/cards/"
                  { @func private_string }
                  ".conf"
              ]
          }
      ]
      errors false
  }
]

#
# defaults
#

# show all name hints also for definitions without hint {} section
defaults.namehint.showall on
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended on
#
#defaults.ctl.card 0
#defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000       # in us
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.channels 2
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format "unchanged"
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround21.card defaults.pcm.card
defaults.pcm.surround21.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
defaults.pcm.file_format  "raw"
defaults.pcm.file_truncate    true
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#  PCM interface
#

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm

pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.front cards.pcm.front
#pcm.rear cards.pcm.rear
#pcm.center_lfe cards.pcm.center_lfe
#pcm.side cards.pcm.side
pcm.surround21 cards.pcm.surround21
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif iec958
pcm.hdmi cards.pcm.hdmi
pcm.dmix cards.pcm.dmix
pcm.dsnoop cards.pcm.dsnoop
pcm.modem cards.pcm.modem
pcm.phoneline cards.pcm.phoneline

pcm.hw {
  @args [ CARD DEV SUBDEV ]
  @args.CARD {
      type string
      default {
          @func getenv
          vars [
              ALSA_PCM_CARD
              ALSA_CARD
          ]
          default {
              @func refer
              name defaults.pcm.card
          }
      }
  }
  @args.DEV {
      type integer
      default {
          @func igetenv
          vars [
              ALSA_PCM_DEVICE
          ]
          default {
              @func refer
              name defaults.pcm.device
          }
      }
  }
  @args.SUBDEV {
      type integer
      default {
          @func refer
          name defaults.pcm.subdevice
      }
  }       
  type hw
  card $CARD
  device $DEV
  subdevice $SUBDEV
  hint {
      show {
          @func refer
          name defaults.namehint.extended
      }
      description "Direct hardware device without any conversions"
  }
}

pcm.plughw {
  @args [ CARD DEV SUBDEV ]
  @args.CARD {
      type string
      default {
          @func getenv
          vars [
              ALSA_PCM_CARD
              ALSA_CARD
          ]
          default {
              @func refer
              name defaults.pcm.card
          }
      }
  }
  @args.DEV {
      type integer
      default {
          @func igetenv
          vars [
              ALSA_PCM_DEVICE
          ]
          default {
              @func refer
              name defaults.pcm.device
          }
      }
  }
  @args.SUBDEV {
      type integer
      default {
          @func refer
          name defaults.pcm.subdevice
      }
  }       
  type plug
  slave.pcm {
      type hw
      card $CARD
      device $DEV
      subdevice $SUBDEV
  }
  hint {
      show {
          @func refer
          name defaults.namehint.extended
      }
      description "Hardware device with all software conversions"
  }
}

pcm.plug {
  @args [ SLAVE ]
  @args.SLAVE {
      type string
  }
  type plug
  slave.pcm $SLAVE
}

pcm.shm {
  @args [ SOCKET PCM ]
  @args.SOCKET {
      type string
  }
  @args.PCM {
      type string
  }
  type shm
  server $SOCKET
  pcm $PCM
}

pcm.tee {
  @args [ SLAVE FILE FORMAT ]
  @args.SLAVE {
      type string
  }
  @args.FILE {
      type string
  }
  @args.FORMAT {
      type string
      default {
          @func refer
          name defaults.pcm.file_format
      }
  }
  type file
  slave.pcm $SLAVE
  file $FILE
  format $FORMAT
  truncate {
      @func refer
      name defaults.pcm.file_truncate
  }
}

pcm.file {
  @args [ FILE FORMAT ]
  @args.FILE {
      type string
  }
  @args.FORMAT {
      type string
      default {
          @func refer
          name defaults.pcm.file_format
      }
  }
  type file
  slave.pcm null
  file $FILE
  format $FORMAT
  truncate {
      @func refer
      name defaults.pcm.file_truncate
  }
}

pcm.null {
  type null
  hint {
      show {
          @func refer
          name defaults.namehint.basic
      }
      description "Discard all samples (playback) or generate zero samples (capture)"
  }
}

#
#  Control interface
#

ctl.sysdefault {
  type hw
  card {
      @func getenv
      vars [
          ALSA_CTL_CARD
          ALSA_CARD
      ]
      default {
          @func refer
          name defaults.ctl.card
      }
  }
  hint.description "Default control device"
}
ctl.default ctl.sysdefault

ctl.hw {
  @args [ CARD ]
  @args.CARD {
      type string
      default {
          @func getenv
          vars [
              ALSA_CTL_CARD
              ALSA_CARD
          ]
          default {
              @func refer
              name defaults.ctl.card
          }
      }
  }
  type hw
  card $CARD
  hint.description "Direct control device"
}

ctl.shm {
  @args [ SOCKET CTL ]
  @args.SOCKET {
      type string
  }
  @args.CTL {
      type string
  }
  type shm
  server $SOCKET
  ctl $CTL
}

#
#  RawMidi interface
#

rawmidi.default {
  type hw
  card {
      @func getenv
      vars [
          ALSA_RAWMIDI_CARD
          ALSA_CARD
      ]
      default {
          @func refer
          name defaults.rawmidi.card
      }
  }
  device {
      @func igetenv
      vars [
          ALSA_RAWMIDI_DEVICE
      ]
      default {
          @func refer
          name defaults.rawmidi.device
      }
  }
  hint.description "Default raw MIDI device"
}

rawmidi.hw {
  @args [ CARD DEV SUBDEV ]
  @args.CARD {
      type string
      default {
          @func getenv
          vars [
              ALSA_RAWMIDI_CARD
              ALSA_CARD
          ]
          default {
              @func refer
              name defaults.rawmidi.card
          }
      }
  }
  @args.DEV {
      type integer
      default {
          @func igetenv
          vars [
              ALSA_RAWMIDI_DEVICE
          ]
          default {
              @func refer
              name defaults.rawmidi.device
          }
      }
  }
  @args.SUBDEV {
      type integer
      default -1
  }
  type hw
  card $CARD
  device $DEV
  subdevice $SUBDEV
  hint {
      description "Direct rawmidi driver device"
      device $DEV
  }
}

rawmidi.virtual {
  @args [ MERGE ]
  @args.MERGE {
      type string
      default 1
  }
  type virtual
  merge $MERGE
}

#
#  Sequencer interface
#

seq.default {
  type hw
  hint.description "Default sequencer device"
}

seq.hw {
  type hw
}

#
#  HwDep interface
#

hwdep.default {
  type hw
  card {
      @func getenv
      vars [
          ALSA_HWDEP_CARD
          ALSA_CARD
      ]
      default {
          @func refer
          name defaults.hwdep.card
      }
  }
  device {
      @func igetenv
      vars [
          ALSA_HWDEP_DEVICE
      ]
      default {
          @func refer
          name defaults.hwdep.device
      }
  }
  hint.description "Default hardware dependent device"
}

hwdep.hw {
  @args [ CARD DEV ]
  @args.CARD {
      type string
      default {
          @func getenv
          vars [
              ALSA_HWDEP_CARD
              ALSA_CARD
          ]
          default {
              @func refer
              name defaults.hwdep.card
          }
      }
  }
  @args.DEV {
      type integer
      default {
          @func igetenv
          vars [
              ALSA_HWDEP_DEVICE
          ]
          default {
              @func refer
              name defaults.hwdep.device
          }
      }
  }
  type hw
  card $CARD
  device $DEV
  hint {
      description "Direct hardware dependent device"
      device $DEV
  }
}

#
#  Timer interface
#

timer_query.default {
  type hw
}

timer_query.hw {
  type hw
}

timer.default {
  type hw
  class {
      @func refer
      name defaults.timer.class
  }
  sclass {
      @func refer
      name defaults.timer.sclass
  }
  card {
      @func refer
      name defaults.timer.card
  }
  device {
      @func refer
      name defaults.timer.device
  }
  subdevice {
      @func refer
      name defaults.timer.subdevice
  }
  hint.description "Default timer device"
}

timer.hw {
  @args [ CLASS SCLASS CARD DEV SUBDEV ]
  @args.CLASS {
      type integer
      default {
          @func refer
          name defaults.timer.class
      }
  }
  @args.SCLASS {
      type integer
      default {
          @func refer
          name defaults.timer.sclass
      }
  }
  @args.CARD {
      type string
      default {
          @func refer
          name defaults.timer.card
      }
  }
  @args.DEV {
      type integer
      default {
          @func refer
          name defaults.timer.device
      }
  }
  @args.SUBDEV {
      type integer
      default {
          @func refer
          name defaults.timer.subdevice
      }
  }
  type hw
  class $CLASS
  sclass $SCLASS
  card $CARD
  device $DEV
  subdevice $SUBDEV
  hint {
      description "Direct timer device"
      device $DEV
  }
}
  1. subl /etc/modprobe.d/default.conf параметры snd_hda_intel index=1
  2. sudo apt-get install jackd qjackctl openjdk-8-jdk
  3. jackd -d alsa -d hw:1,3 -r 44100
  4. sudo apt-get install -y libshout3-dev
  5. sudo cp "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" "/usr/./libstdc++.so.6"
  6. скачать с https://pypi.org/project/python-shout3/
  7. сборка python3.6 setup.py
  8. установка python3.6 setup.py
  9. sudo apt-get install portaudio19-dev
  10. pip3 установить звуковое устройство --user
  11. sudo apt-get install portaudio19-dev python3-pyaudio
  12. Установите Audacity из программного центра ubuntu
  13. sudo apt установить pavucontrol
  14. sudo apt-add-repository ppa:audio-recorder / ppa sudo apt-get update sudo apt-get установить аудиорекордер
  15. Установка anydesk

wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | sudo apt-key добавить -

sudo sh -c 'echo "deb http://deb.anydesk.com/ all main"> /etc/apt/sources.list.d/anydesk-stable.list'

sudo apt update

sudo apt установить anydesk

  1. pip3 установить pydub
  2. apt-get install ffmpeg
  3. pip3 установить simpleaudio

Я хорошо слышу звуки из ритмбокса.

Я могу записывать звук от наглости, но в низком качестве.

Любые советы были бы полезны!!!

Изменить: попытка скомпилировать http://portaudio.com/docs/v19-doxydocs/pa__devs_8c_source.html

где portaudio.h -> а затем cp /usr/include/portaudio.h /home/chris/Desktop

Ошибки:

/usr/bin/ld: /tmp/ccqdH0Ig.o: in function `PrintSupportedStandardSampleRates':
hello.c:(.text+0x53): undefined reference to `Pa_IsFormatSupported'
/usr/bin/ld: /tmp/ccqdH0Ig.o: in function `main':
hello.c:(.text+0x178): undefined reference to `Pa_Initialize'
/usr/bin/ld: hello.c:(.text+0x1a1): undefined reference to `Pa_GetVersion'
/usr/bin/ld: hello.c:(.text+0x1be): undefined reference to `Pa_GetVersionInfo'
/usr/bin/ld: hello.c:(.text+0x1db): undefined reference to `Pa_GetDeviceCount'
/usr/bin/ld: hello.c:(.text+0x231): undefined reference to `Pa_GetDeviceInfo'
/usr/bin/ld: hello.c:(.text+0x257): undefined reference to `Pa_GetDefaultInputDevice'
/usr/bin/ld: hello.c:(.text+0x284): undefined reference to `Pa_GetHostApiInfo'
/usr/bin/ld: hello.c:(.text+0x29a): undefined reference to `Pa_GetHostApiInfo'
/usr/bin/ld: hello.c:(.text+0x2c6): undefined reference to `Pa_GetDefaultOutputDevice'
/usr/bin/ld: hello.c:(.text+0x316): undefined reference to `Pa_GetHostApiInfo'
/usr/bin/ld: hello.c:(.text+0x32c): undefined reference to `Pa_GetHostApiInfo'
/usr/bin/ld: hello.c:(.text+0x3b2): undefined reference to `Pa_GetHostApiInfo'
/usr/bin/ld: hello.c:(.text+0x591): undefined reference to `Pa_Terminate'
/usr/bin/ld: hello.c:(.text+0x5a9): undefined reference to `Pa_Terminate'
/usr/bin/ld: hello.c:(.text+0x5d1): undefined reference to `Pa_GetErrorText'

Я также попробовал альтернативный https://github.com/larsimmisch/pyalsaaudio. Я могу воспроизводить файлы wav, но качество записи очень низкое.

0 ответов

Другие вопросы по тегам