1.用 VS2012 编译 PortAudio 的小插曲以及怎么加入 ASIO SDK 等
2.AnkiDroid服务器和客户端的源码搭建过程
3.Linux上如何安装使用音乐软件SoundCloud
4.『开发技巧』Python音频操作工具PyAudio上手教程
用 VS2012 编译 PortAudio 的小插曲以及怎么加入 ASIO SDK 等
初次尝试在 Windows 下编译 PortAudio,并加入 ASIO SDK 时,我遇到了一系列挑战。开始时,我尝试使用 PyAudio,但未成功安装。源码时代解散出于对问题的好奇,我转而决定亲自编译 PortAudio,以证明我的电脑配置并无问题。此过程得到了在线社区的热心解答,尤其针对 VS 编译时出现的错误提示。
在访问 PortAudio 官方网站并下载最新源码后,我着手编译。然而,VS 出现了一系列错误提示,涉及 inline 关键字的使用不当以及函数调用格式问题。通过在线搜索,我发现其他开发者也遇到了类似的困难。最终,我得知只需将 "inline" 替换为 "__inline" 即可解决大部分问题。c 中国源码这一调整仅需对源代码中的个地方进行修改,操作相对简单。
完成错误修复后,编译过程得以顺利进行,尽管如此,事情并未就此结束。为了加入 ASIO SDK,我仔细阅读了 PortAudio 的教程,并正确解压和放置了 ASIO API 文件。ASIO SDK 的下载流程已简化,不再需要注册,只需直接下载即可。
在尝试了多种解决方法后,我最终选择通过直接安装包来解决 PyAudio 的安装问题。过程中,我注意到旧版()的 BUILD TOOL 依然存在,并提供下载链接。同样地,我遇到了 pymssql 和 freetds 的c 登录源码安装困难,最终选择使用 freetds-devel 包来解决相关问题。
经过一系列尝试,最终我发现安装 freetds-devel 包后,问题基本得到了解决。这一过程虽曲折,但也为我提供了对编译和安装过程的深入理解,同时,也突显了在线社区资源和解决方法的重要性。
AnkiDroid服务器和客户端的源码搭建过程
在Ubuntu .系统中,我们首先需要安装Python 3.版本的环境。
接着,参考官方文档进行Anki客户端的安装依赖与运行。在遇到问题时,可以通过指定链接找到解决办法。
首先,下载并解压官方提供的pa_stable_v_.tgz文件,然后进入解压后的文件夹执行命令:$ ./configure,$ make,$ make install,freeme os源码以安装必要的依赖库。
对于遇到的问题,可以通过另一个指定链接找到解决方案。确保已安装libasound-dev, portaudio-dev, libportaudio2, libportaudiocpp0等依赖库。
之后,重新编译Python3。首先进入Python-3.6.3安装源目录,执行命令:$ sudo ./configure --enable-optimozations,$ sudo make -j8,$ sudo make install。验证安装是否成功,可通过执行$ python3并输入import sqlite3命令来实现。
对于Anki服务器的安装与运行,参考指定的文档。注意这是针对Anki2.1客户端的服务器,而Anki2.0的服务器依赖与此类似。
在Add-on文件夹下创建名为ankisyncd的文件夹,并在此文件夹中创建并编辑__init__.py文件。确保文件中不含汉字,java rpg 源码保存为utf-8格式。这一步骤为Anki服务器的设置关键步骤。
Linux上如何安装使用音乐软件SoundCloud
对于喜欢音乐的朋友来说,SoundCloud是个不错的音乐软件,SoundCloud是德国的网站,现在也有客户端了,在Linux安装SoundCloud后,就能够在命令行中播放音乐,下面小编就给大家介绍下Linux安装SoundCloud的方法。安装
对于Debian或者Ubuntu用户,如下安装:
$ sudo apt-get install portaudio-dev libmpg-dev libncurses-dev ruby1.9.1-dev
$ sudo gem install soundcloud
对于Archlinux用户,在AUR仓库中可以获取到包
对于Fedora用户,如下安装:
$ sudo yum install portaudio-devel libmpg-devel ncurses-devel ruby-devel
$ sudo gem install soundcloud
对于CentOS用户,安装或者升级到最新 Ruby/RubyGems (1.9或更高),启用Repoforge repo,如下安装:
$ sudo yum install portaudio-devel mpg-devel
$ sudo gem install curses soundcloud
最后,到官方的github页面获取源码
使用
Soundcloud非常容易使用。有些人甚至会说简单。我喜欢它的庄重以及三位作者和贡献者的努力。如下启动它:
$ soundcloud
这里,你将看到一个闪屏:
接着是歌曲列表:
您可以通过上下键滚动列表,回车播放一首歌曲,空格键是暂停/恢复,左右箭头键是快进/快退。正如你所看到的,没有什么突破性的但绝对符合人体工程学。
如果随机列表太长无法滚动完,你有一个选项来查看所有曲目,用户通过点击‘u’键接着输入自己的名字。
这可能是Soundcloud的主要缺陷之一。虽然导航没有优化过,但是我对这个很年轻的软件的改善和支持还是寄予厚望的。
奖励
另外一个额外的奖励:如果你喜欢在终端上使用SoundCloud的想法,但不想安装任何额外的软件(也许你不能),我劝你去cmd.fm。该网站是一个伪装的SoundCloud,它隐藏在一个shell界面后。
输入“help”可以得到命令列表,这比Soundcloud长很多。比如,我看到:
_genres 列出所有流派
_play random 随机播放
_pause 暂停播放
_playlist new 建立新的播放节目单
_loop 循环播放
_cinema 如同星球大战一样的字幕
它甚至支持通过tab键自动补完流派名称
最后,Soundcloud的确是一个整洁的程序。我们可以原谅其目前的缺陷,因为它还年轻。我真的希望它会成长,并包含更多的功能(并从潜在的cmd.fm得到的灵感)。
上面就是Linux安装SoundCloud的方法介绍了,SoundCloud是广大网友分享音乐的平台,你能够在上面分享自己录制的歌曲,也能收听别人的歌曲,是个不错的软件。
『开发技巧』Python音频操作工具PyAudio上手教程
Python音频操作工具PyAudio上手教程
0.引子
当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包。
PyAudio是Python开源工具包,由名思义,是提供对语音操作的工具包。提供录音播放处理等功能,可以视作语音领域的OpenCv。
1.简介
PyAudio为跨平台音频I / O库 PortAudio提供 Python 绑定。使用PyAudio,您可以轻松地使用Python在各种平台上播放和录制音频,例如GNU / Linux,Microsoft Windows和Apple Mac OS X / macOS。
PyAudio的灵感来自:
2.安装
目前的版本是PyAudio v0.2.。在大多数平台上使用pip安装PyAudio。对于v0.2.9之前的版本,PyAudio分发安装二进制文件,这些文件 存档在这里。
微软Windows
使用 pip安装:
python -m pip install pyaudio
Apple Mac OS X.
使用 Homebrew安装必备的portaudio库,然后使用pip安装PyAudio:
brew install portaudio pip install pyaudio
Debian / Ubuntu
使用包管理器安装PyAudio:
sudo apt-get install python-pyaudio python3-pyaudio
如果没有最新版本的PyAudio,请使用pip安装它:
pip install pyaudio
PyAudio来源
源代码可从Python Package Index(PyPI)下载: pypi.python.org/pypi/PyAudio。
或克隆git存储库:
git clone people.csail.mit.edu/hu...
要从源代码构建PyAudio,您还需要构建 PortAudio v。有关为各种平台构建PyAudio的一些说明,请参阅 编译提示。要使用Microsoft Visual Studio构建PyAudio,请查看Sebastian Audet的 说明。
3.示例
1).采集音频
下面以一段代码演示如何从计算机麦克风采集一段音频,采集音频时长 4s,保存文件 output.wav。使用了tqdm模块,可以方便显示出来读取过程。
要使用PyAudio,首先使用 pyaudio.PyAudio()(1)实例化PyAudio ,它设置portaudio系统。要录制或播放音频,请使用 pyaudio.PyAudio.open() (2)在所需设备上打开所需音频参数的流。这设置了 pyaudio.Stream播放或录制音频。
通过使用流式传输 pyaudio.Stream.write()音频数据或使用流式传输音频数据来播放音频 pyaudio.Stream.read()。(3)请注意,在“阻止模式”中,每个 pyaudio.Stream.write()或 pyaudio.Stream.read()阻止直到所有给定/请求的帧都被播放/记录。或者,要动态生成音频数据或立即处理录制的音频数据,请使用下面概述的“回调模式”。
使用 pyaudio.Stream.stop_stream()暂停播放/录制,并 pyaudio.Stream.close()终止流。(4)最后,使用 pyaudio.PyAudio.terminate()(5)终止portaudio会话。
2).播放音频
下面使用播放的功能来播放1)中保存的音频 output.wav。通过tqdm,显示播放进度条。
当需要在执行其他程序时同时播放音频,可以使用回调的方式播放,示例代码如下: