列表,集和词典的Python原生功能完全摇滚.当数据变得非常大时,有没有办法继续使用本机功能?我正在处理的问题涉及非常大的列表的匹配(交集).我还没有突破限制 - 实际上我并不知道限制是什么 - 并且不希望在数据按预期增长之后重新实现大的重复.
是否合理部署在谷歌应用引擎之类的东西上,宣传没有实际的规模限制并继续使用本机功能,而不是真的考虑这个?
是否存在一些Python魔法,可以隐藏列表,集合或字典是否在Python管理的内存中而不是数据库中 - 因此数据的物理部署可以与我在代码中的操作保持不同?
您是如何处理Python超级专家先生或女士,随着数据量的增长处理列表,设置和决策?
我有一个2秒16位单通道8khz wav文件,我需要改变它的音量.
这应该是非常简单的,因为改变音量与改变信号的幅度是一样的,我只需要对它进行衰减,即将它乘以0到1之间的数字.但它不起作用:新的声音较低,但非常充满噪音.我究竟做错了什么?
这是我的代码:
import wave, numpy, struct
# Open
w = wave.open("input.wav","rb")
p = w.getparams()
f = p[3] # number of frames
s = w.readframes(f)
w.close()
# Edit
s = numpy.fromstring(s, numpy.int16) * 5 / 10 # half amplitude
s = struct.pack('h'*len(s), *s)
# Save
w = wave.open("output.wav","wb")
w.setparams(p)
w.writeframes(s)
w.close()
Run Code Online (Sandbox Code Playgroud)
感谢你们!
我正在使用这种方法将wav文件读取到字节数组(如下所示).现在我把它存储在我的字节数组中,我想改变音量.
private byte[] getAudioFileData(final String filePath) {
byte[] data = null;
try {
final ByteArrayOutputStream baout = new ByteArrayOutputStream();
final File file = new File(filePath);
final AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
byte[] buffer = new byte[4096];
int c;
while ((c = audioInputStream.read(buffer, 0, buffer.length)) != -1) {
baout.write(buffer, 0, c);
}
audioInputStream.close();
baout.close();
data = baout.toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
Run Code Online (Sandbox Code Playgroud)
编辑:按要求提供有关音频格式的一些信息:
PCM_SIGNED 44100.0 Hz,16位,单声道,2字节/帧,小端
从物理课开始,我记得你可以通过将正弦值乘以0到1之间的数字来改变正弦波的幅度.
编辑:更新了16位样本的代码:
private byte[] adjustVolume(byte[] audioSamples, …Run Code Online (Sandbox Code Playgroud) 我有一个CentOS盒子能够通过ssh访问Windows盒子的Cygwin.我想ssh me@windowsbox 'vol F:'在脚本中运行以捕获插入式USB驱动器的名称和序列号,但我得到:
bash: vol: command not found
Run Code Online (Sandbox Code Playgroud)
我只是运行vol.exe的路径,但没有这样的事情:VOL内置于cmd.exe中.
我如何VOL在Cygwin中使用?
我有几个需要状态的容器 - 我只会将比例设置为1,但我希望这样,无论他们在卷上启动哪个主机都会被共享.
我猜我需要使用网络安装来实现这一点(这很好),但我怎么用docker swarm 1.12配置音量呢?
我知道我可以使用docker volume create,我想我可能需要指定一个驱动程序,但我很难找到一个这样的例子!
我创建了用于存储我的应用程序数据库数据的卷 - docker volume create dbvolume.
然后我使用 Oracle XE 11g 数据库映像和数据量启动了我的 docker 容器。
docker run --name=OracleXE --shm-size=1g -p 1521:1521 -p 8080:8080 -e ORACLE_PWD=weblogic1 -v dbvolume:/opt/oracle/oradata oracle/database:11.2.0.2-xe
在数据库中存储了一些条目。停止并删除容器,然后再次启动它,但数据库中没有数据持久化。
如何在对应用程序的后续请求中获取持久数据。
我将如何改变c ++ win32中的音量?另外,我将如何静音/取消静音?谢谢您的帮助!
美好的一天!
我正在开发一个播放MIDI的应用程序.它运行良好,但我经常得到准bug报告:'没有声音playd'.答案是,进入音量控制器并打开合成器声音(使其不静音).
问题是 - 如何通过软件自动更改?直到现在我只能改变主音量,我真的无法在任何地方找到如何改变'波浪''SW合成器'等...
我一般都在寻找平台独立的解决方案(纯java),但是欢迎仅针对Windows(各种各样的Windows)的解决方案;)谢谢你!
编辑:嗯,看看答案,我知道,我应该更好地指出我的问题.我附加图片.用绿色选择的控件是我已经可以做的(即Cliff链接)但是我需要一些红色控件(在我的情况下最重要的是左边的第3个 - 合成器音量).图像取自win XP,但其他操作系统(linux也)也有类似的控件.Java必须具备这种可能性.
我需要检测用户何时按下硬件音量键,(App Store安全方法)我已经尝试了许多没有运气的事情.你知道如何实现这样的功能吗?目前我正在注册通知,但它们似乎没有被调用.这是我的代码:
AudioSessionInitialize(NULL, NULL, NULL, NULL);
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector(volumeChanged:)
name:@"AVSystemController_SystemVolumeDidChangeNotification"
object:nil];
Run Code Online (Sandbox Code Playgroud)
接收方法是:
-(void)volumeChanged:(NSNotification *)notification{
NSLog(@"YAY, VOLUME WAS CHANGED");}
Run Code Online (Sandbox Code Playgroud)
任何提示将非常感谢.
背景:我正在使用docker-compose将tomcat服务放入docker swarm集群中,但我现在正在努力解决我将如何接近日志记录目录,因为我想扩展服务但仍保留其唯一性记录目录.
考虑(显然)组成的docker-compose,它只是启动tomcat并安装一个日志文件系统来捕获日志.
version: '2'
services:
tomcat:
image: "tomcat:latest"
hostname: tomcat-example
command: /start.sh
volumes:
- "/data/container/tomcat/logs:/opt/tomcat/logs,z"
版本
问题:我想了解如何将变量插入"卷"日志路径,以便日志目录对于缩放服务的每个实例都是唯一的
说,
volumes:
- "/data/container/tomcat/${container_name}/logs:/opt/tomcat/logs,z"
Run Code Online (Sandbox Code Playgroud)
我看到基于项目名称(或我所在的目录),容器名称实际上是已知的,所以我可以使用它吗?
例如,将项目名称设置为'tomcat'并运行docker-compose scale tomcat=2我会看到以下容器.
那么有什么方法可以将它作为日志量的变量来利用,欢迎其他建议或方法.我意识到我可以指定一个相对路径并让container_id处理这个问题,但现在如果我将splunk或logstash附加到日志设备上,我需要知道哪些确实是日志设备,而不是基本容器f /秒.然而,理想情况下,我正在寻找一个特定的绝对路径.
在此先感谢码头工人!R.