我尝试重新键入我的键盘以更好地键入.
但我需要知道每个键包含符号的频率,如果包含tab shift ctrl将会很棒.我需要所有的按键会话,不仅字母的频率出现在英语单词中.
我使用ibus-pinyin作为我的输入法.和archlinux,真棒wm,没有安装kde和gnome.任何程序都可以帮助我吗?
BTW:dvorak出了什么问题. http://colemak.com/FAQ#What.27s_wrong_with_the_Dvorak_layout.3F
但是colemak也不适合我,因为我想要更多的synmbols.
但我必须保留一些数字,1-5从ibus中选择中文单词,你知道拼音字母频率与英文字母不一样.
我是FFT和信号处理的新手,所以希望这个问题有意义和/或不是愚蠢的.
我想对现场音频信号进行频谱分析.我的目标是在响应度和频率分辨率之间找到一个很好的权衡,这样我就可以近乎实时地猜测传入音频的音高.
从我收集的关于傅里叶变换背后的数学的方面来看,样本大小和频率分辨率之间存在固有的平衡.样本越大,分辨率越高.由于我试图最小化样本大小(以达到近实时要求),这意味着我的分辨率受到影响(输出缓冲器中的每个时隙对应于宽频率范围,这是不合需要的).
但是,对于我的预期应用,我并不关心大部分频谱.我只需要一个窄频率范围的频谱信息,例如100hz - 1600hz.有没有办法修改FFT实现,这样我可以提高频域输出的分辨率,同时保持输入缓冲区大小不变(和小)?换句话说,我可以将输出总带宽换成输出分辨率吗?如果是这样,这是怎么做到的?
虽然我对数学的掌握最好,但似乎用零填充输入缓冲区可能很有意思,不是吗?
提前感谢您提供的任何帮助.
我正在尝试计算文档中每个术语的tf-idf值.因此,我遍历文档中的术语,并希望在整个语料库中找到术语的频率以及术语出现的文档数.以下是我的代码:
//@param index path to index directory
//@param docNbr the document number in the index
public void readingIndex(String index, int docNbr) {
IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(index)));
Document doc = reader.document(docNbr);
System.out.println("Processing file: "+doc.get("id"));
Terms termVector = reader.getTermVector(docNbr, "contents");
TermsEnum itr = termVector.iterator(null);
BytesRef term = null;
while ((term = itr.next()) != null) {
String termText = term.utf8ToString();
long termFreq = itr.totalTermFreq(); //FIXME: this only return frequency in this doc
long docCount = itr.docFreq(); //FIXME: docCount = 1 in all …
Run Code Online (Sandbox Code Playgroud) 我想知道我是否正确地在MATLAB中使用傅里叶变换.我希望得到一首歌中频率的所有平均幅度.出于测试目的,我使用Beelovens"For Elise"的免费mp3下载,我使用Audacity将其转换为8 kHz单声道文件.
我的MATLAB代码如下:
clear all % be careful
% load file
% Für Elise Recording by Valentina Lisitsa
% from http://www.forelise.com/recordings/valentina_lisitsa
% Converted to 8 kHz mono using Audacity
allSamples = wavread('fur_elise_valentina_lisitsa_8khz_mono.wav');
% apply windowing function
w = hanning(length(allSamples));
allSamples = allSamples.*w;
% FFT needs input of length 2^x
NFFT = 2^nextpow2(length(allSamples))
% Apply FFT
fftBuckets=fft(allSamples, NFFT);
fftBuckets=fftBuckets(1:(NFFT/2+1)); % because of symetric/mirrored values
% calculate single side amplitude spectrum,
% normalize by dividing by NFFT …
Run Code Online (Sandbox Code Playgroud) 实时不一定是必需的,但是我正在为我的最后一年项目创建一个游戏,我希望利用音频的力量来创建仅基于正在播放的音乐曲目的动态水平.我的目标是使用Playstation mobile和C#为PS Vita创建这个游戏,但如果我想我可以切换到C++和PSP.
我可以使用WAV文件,并希望提取波形的幅度,以及从该数据计算平均频率和近似BPM等其他特征以创建一个级别.
我对尝试使用这些原始数据没有任何疑虑,我只是想知道一种方法,我可以先实际获取该信息.如果我可以提取样本并确定这些样本的不同特征,我可以存储它们并计算出响度,音高等变化以创建音符等.
我正在使用C#,但如果可能的话,我可以使用p/invoke或将我的项目切换到另一个使用C++而不是C#的设备.
我在这里有点恐慌,因为我真的有点难过.
非常感谢你们.
我在我最喜欢的节目的剧集中对词进行了频率分析.我正在制作plot.barh(s1e1_y,s1e1_x),但它按字而不是值排序.输出>>> s1e1_y
是
['know', 'go', 'now', 'here', 'gonna', 'can', 'them', 'think', 'come', 'time', 'got', 'elliot', 'talk', 'out', 'night', 'been', 'then', 'need', 'world', "what's"]
Run Code Online (Sandbox Code Playgroud)
和 >>>s1e1_x
[42, 30, 26, 25, 24, 22, 20, 19, 19, 18, 18, 18, 17, 17, 15, 15, 14, 14, 13, 13]
实际绘制图表时,即使绘图列表未排序,图表的y轴刻度也会按字母顺序排序...
s1e1_wordlist = []
s1e1_count = []
for word, count in s1e01:
if((word[:-1] in excluded_words) == False):
s1e1_wordlist.append(word[:-1])
s1e1_count.append(int(count))
s1e1_sorted = sorted(list(sorted(zip(s1e1_count, s1e1_wordlist))),
reverse=True)
s1e1_20 = []
for i in range(0,20):
s1e1_20.append(s1e1_sorted[i])
s1e1_x = …
Run Code Online (Sandbox Code Playgroud) 最近我问了这个问题:如何从FFT获得基频?(你实际上不需要阅读它)
我现在怀疑它:如何使用cepstral算法?
我只是不知道如何使用它,因为我所知道的唯一语言是ActionScript 3,因此我几乎没有关于C,Java等中的本机函数的引用,以及我应该如何在AS上实现它们.大多数文章是关于这些语言= /(尽管如此,欢迎使用AS以外的其他语言的答案,请解释脚本如何工作请)
我发现有关cepstral的文章找到FFT结果的基本频率告诉我,我应该这样做:
信号→FT→abs()→square→log→FT→abs()→square→power倒谱
数学上:| F {log(| F {f(t)} |²)} |²
重要信息:
我不知道:
谢谢!
我真的对声音处理新的,所以也许我的问题将是微不足道的。我想要做的是使用 R 从 wav 文件中提取特定的频率范围(假设为 150-400 Hz)。换句话说,我想创建另一个波形文件(wave2),其中仅包含我的频率分量指定(150 到 400 Hz,或其他什么)。
我在网上读了一些东西,我发现这可以通过 FFT 分析来完成,问题就来了。
假设我有这个代码:
library(sound)
s1 <- Sine(440, 1)
s2 <- Sine(880, 1)
s3 <- s1 + s2
s3.s <- as.vector(s3$sound)
# s3.s is now a vector, with length 44100;
# bitrate is 44100 (by default)
# so total time of s3 is 1sec.
# now I calculate frequencies
N <- length(s3.s) # 44100
k <- c(0:(N-1))
Fs <- 44100 # sampling rate
T <- N / Fs …
Run Code Online (Sandbox Code Playgroud) 首先,我对 Android 还很陌生。在此之前我正在做Arduino。我想要实现的第一个目标是能够检测特定的声音频率或模式。
因此,在我能够检测到特定的声音频率之前,我必须至少能够看到周围的所有频率。
在任何人无需尝试就可以将其标记为重复项或问题之前。我已经尽力了,尽我所能。我几乎无法理解 FFT 或过零是如何工作的。但我读到过零并不是那么准确。所以,我正在使用 FFT。我非常密切地关注这篇文章,但我不知道整个工作代码是什么样的。
Android 音频 FFT 使用 audiorecord 检索特定频率幅度
因此,我尝试将问题和解决方案结合起来,如下面的代码所示。我几乎无法理解发生了什么事。
FrequencyThread.java
package com.example.syahmul.backgroundapp;
/**
* Record and detect frequency using FFT
* Ref: /sf/ask/404187311/
* magnitude-using-audiorecord
*/
//Audio Library
import android.media.AudioRecord;
import android.media.MediaRecorder.AudioSource;
import android.media.AudioFormat;
import android.provider.MediaStore;
import android.util.Log;
public class FrequencyThread extends Thread{
protected static final String TAG = "FrequencyThread";
int channel_config = AudioFormat.CHANNEL_IN_MONO;
int format = AudioFormat.ENCODING_PCM_16BIT;
public int sampleSize = 8000;
//public int bufferSize = AudioRecord.getMinBufferSize(sampleSize, channel_config, format); //640
public …
Run Code Online (Sandbox Code Playgroud) 我有一个包含 4 个名义变量的数据框,每个变量有 3 个级别(A、B、C)。我想制作一个高度为 4、宽度为 3 的频率表,其中每行包含该变量的级别计数。
df <- data.frame(var1=c('B', 'A', 'C', 'A', 'B', 'B', 'C'),
var2=c('A', 'A', 'A', 'A', 'B', 'B', 'C'),
var3=c('A', 'A', 'A', 'A', 'B', 'B', 'C'),
var4=c('A', 'A', 'A', 'A', 'B', 'B', 'B'))
head(df,10)
var1 var2 var3 var4
1 B A A A
2 A A A A
3 C A A A
4 A A A A
5 B B B B
6 B B B B
7 C C C B
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的:
A …
Run Code Online (Sandbox Code Playgroud)