小编gre*_*egS的帖子

鸡尾酒会算法SVD实现......在一行代码中?

在Stanford的Andrew Ng在Coursera的机器学习入门讲座中的一篇幻灯片中,他给出了以下一行Octave解决方案,因为音频源由两个空间分离的麦克风录制:

[W,s,v]=svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
Run Code Online (Sandbox Code Playgroud)

幻灯片的底部是"来源:Sam Roweis,Yair Weiss,Eero Simoncelli",而在之前幻灯片的底部则是"音频片段由Te-Won Lee提供".在视频中,吴教授说,

"所以你可能会看到这样无监督的学习,并问,'实现这个有多复杂?' 看起来为了构建这个应用程序,似乎要做这个音频处理,你会写大量的代码,或者可能链接到一堆处理音频的C++或Java库.看起来它真的是真的执行此音频的复杂程序:分离出音频等等.事实证明算法可以完成您刚刚听到的内容,只需一行代码即可完成...此处显示.确实需要研究人员很长时间想出这一行代码.所以我并不是说这是一个容易出问题的问题.但事实证明,当你使用正确的编程环境时,很多学习算法都会成为很短的程序."

在视频讲座中播放的分离音频结果并不完美,但在我看来,令人惊叹.有没有人知道这一行代码如何表现如此之好?特别是,有没有人知道有关这一行代码的Te-Won Lee,Sam Roweis,Yair Weiss和Eero Simoncelli的工作的参考资料?

UPDATE

为了演示算法对麦克风间隔距离的敏感度,以下模拟(在Octave中)将音调与两个空间分离的音调发生器分开.

% define model 
f1 = 1100;              % frequency of tone generator 1; unit: Hz 
f2 = 2900;              % frequency of tone generator 2; unit: Hz 
Ts = 1/(40*max(f1,f2)); % sampling period; unit: s 
dMic = 1;               % distance between microphones centered about origin; unit: m 
dSrc = 10;              % distance between tone generators centered about origin; unit: m 
c = 340.29;             % speed …
Run Code Online (Sandbox Code Playgroud)

matlab machine-learning linear-algebra octave svd

78
推荐指数
2
解决办法
3万
查看次数

如何恢复中断的下载

我正试图从我的Yahoo!下载一个大文件 网站服务器显然是设置(不是由我)断开下载,如果他们没有在100秒内完成.该文件足够小,通常可以成功传输.在数据速率较慢且下载断开的情况下,有没有办法在发生断开连接的文件偏移处恢复URLConnection?这是代码:

// Setup connection.
URL url = new URL(strUrl[0]);
URLConnection cx = url.openConnection();
cx.connect();

// Setup streams and buffers.
int lengthFile = cx.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(strUrl[1]);
byte data[] = new byte[1024];

// Download file.
for (total=0; (count=input.read(data, 0, 1024)) != -1; total+=count) {
    publishProgress((int)(total*100/lengthFile));
    output.write(data, 0, count);
    Log.d("AsyncDownloadFile", "bytes: " + total);
}

// Close streams.
output.flush();
output.close();
input.close();
Run Code Online (Sandbox Code Playgroud)

java android http

21
推荐指数
1
解决办法
2万
查看次数

如何恢复中断下载 - 第2部分

这是我之前的问题的延续,当我不是注册用户时,我发布了这个问题.作为复习,我正在尝试从我的Yahoo!继续下载大文件.下载中断时的网站服务器.我以前认为中断是由于100秒超时限制(因为Yahoo!对用户编写的脚本强制执行该时间限制).但是,当我测量下载中断的时间时,我发现中断时序变化很大(有时下载不间断运行不到100秒,有时甚至长达7分钟).所以我不知道超时的原因,我只是想解决它们.

我尝试了naikus的建议(谢谢),根据http标头字段的转储,看来我的Yahoo! 网站服务器确实识别"范围"属性,该属性应允许下载在中断的偏移处恢复.遗憾的是,虽然恢复连接中的http标头中的字节范围显示正确,但传输的内容始终在文件的开头重新开始.(我的测试文件是一个由50,000个4字节整数组成的数组,从0开始递增.我的下载文件总是在每次发生下载中断的偏移处开始重新计数.)

雅虎还有一些其他的HTTP连接属性请求我应该去做!服务器实际上跳到标头字节范围中指定的文件偏移量? 这是代码及其转储的内容:

         // Setup connection.
         URL url = new URL(strUrl[0]);
         URLConnection connection = url.openConnection();
         downloaded = Integer.parseInt(strUrl[3]);
         if (downloaded > 0) {
             connection.setRequestProperty("Range", "bytes="+downloaded+"-");
             connection.connect();
             fileLength = mDownloadFileLength;
             Log.d("AsyncDownloadFile", 
                 "new download seek: " + downloaded +
                 "; lengthFile: " + fileLength);
         }
         else {
             connection.connect();
             downloaded = 0;
             fileLength = connection.getContentLength();
             mDownloadFileLength = fileLength;
         }
         Map<String, List<String>> map = connection.getHeaderFields();
         Log.d("AsyncDownloadFile", "header fields: " + map.toString());

         // Setup streams and buffers. …
Run Code Online (Sandbox Code Playgroud)

java android http download

21
推荐指数
2
解决办法
2万
查看次数

为Android TTS引擎指定发音的最佳做法?

总的来说,我对Android的默认文本到语音引擎(即com.svox.pico)印象非常深刻.正如预期的那样,它会错误地发音一些词(就像我一样),因此偶尔需要一些发音指导.所以我想知道最好的做法是用语音拼写出pico TTS引擎错误发音的那些词.

例如,查查拉卡鸟的正确发音是CHAH-chah-LAH-kah.这是TTS引擎产生的:

mTts.speak("Chachalaca", TextToSpeech.QUEUE_ADD, null); // output: chuh-KAL-uh-KUH
mTts.speak("CHAH-chah-LAH-kah", TextToSpeech.QUEUE_ADD, null); // output: CHAH-chah-EL-AY-AYCH-dash-kuh
mTts.speak("CHAHchahLAHkah", TextToSpeech.QUEUE_ADD, null); // output: CHA-chah-LAH-ka
mTts.speak("CHAH chah LOCKah", TextToSpeech.QUEUE_ADD, null); // output: CHAH-chah-LAH-kah
Run Code Online (Sandbox Code Playgroud)

这是我的问题.

  • 是否有Android TTS引擎识别的标准拼音?
  • 如果没有,是否有制作自发音拼写,这将使更多的拼写可能是正确的未来TTS引擎/版本的一些一般的规则?
  • 似乎Android TTS引擎忽略了文本案例.指定重点的最佳方法是什么?

顺便说一句,这是TTS引擎写入logcat的内容:

V/TtsService(294):TTS处理:姜查姜查洛克
V/TtsService(294):TtsService.setLanguage(ENG,USA)
I/SVOX微微引擎(294):语言已经被加载(EN-US == EN-US )
I/SynthProxy(294):将语速设置为100
I/SynthProxy(294):将音高设置为100

[UPDATE]

我尝试将XML文档传递给TextToSpeech.Speak(),如下所示:

            String text = "<?xml version=\"1.0\"?>" +
                "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" " +
                    "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
                    "xsi:schemaLocation=\"http://www.w3.org/2001/10/synthesis " +
                        "http://www.w3.org/TR/speech-synthesis/synthesis.xsd\" " +
                    "xml:lang=\"en-US\">" +

                    "That is a big car! " +
                    "That <emphasis>is</emphasis> a big car! …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech ssml

17
推荐指数
2
解决办法
9977
查看次数

Android TTS是否支持语音合成标记语言?

将以下SSML(语音合成标记语言)文档传递给com.svox.pico TextToSpeech引擎会导致读取XML主体,但无法通过音素元素或强调元素进行控制.这个结果(没有明显的SSML控制)在运行Android 2.2的Nexus One以及运行SDK级别为8的AVD的模拟器上是相同的.

            String text = "<?xml version=\"1.0\"?>" +
                "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" " +
                    "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
                    "xsi:schemaLocation=\"http://www.w3.org/2001/10/synthesis " +
                        "http://www.w3.org/TR/speech-synthesis/synthesis.xsd\" " +
                    "xml:lang=\"en-US\">" +

                    "tomato " +
                    "<phoneme alphabet=\"ipa\" ph=\"t&amp;#x259;mei&amp;#x325;&amp;#x27E;ou&amp;#x325;\"> tomato </phoneme> " +

                    "That is a big car! " +
                    "That <emphasis> is </emphasis> a big car! " +
                    "That is a <emphasis> big </emphasis> car! " +
                    "That is a huge bank account! " +
                    "That <emphasis level=\"strong\"> is </emphasis> a huge bank account! …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech ssml

11
推荐指数
1
解决办法
4701
查看次数

如何减少Android相机快门滞后的变化?

给定已知的周期性运动(例如,行走),我想在运动中的相同点处拍摄全分辨率快照(即,在不同时段内的相同时间偏移).不过在Nexus S的(当前运行OS 4.1.1,但相同的是以前的OS版本的真),我看到的快门时滞,我不能准确地规划快照的时间这么多的变化.这是50张照片的快门滞后的直方图.(我在快门回调开始之前用Camera.takePicture()和另一个System.nanoTime()测量了一个System.nanoTime()的快门延迟.相机镜头一直被覆盖以消除由于光线引起的任何变化.)

在此输入图像描述

我可以在应用程序中做些什么来减少这种快门滞后变化吗?(在这个应用中,平均滞后可以是任何持续时间,但标准偏差必须小...比上面直方图中显示的快门滞后的0.5秒标准偏差小得多.)我希望有人有一个聪明的建议.如果我没有得到任何建议,我会在Android错误跟踪器中发布功能请求.

更新:我在https://groups.google.com/forum/?hl=en&fromgroups#!topic/android-developers/WaHhTicKRA0的建议之后关闭了自动对焦(通过将焦点设置为无限远) 它有所帮助,如图所示以下直方图.任何减少快门滞后变化的想法甚至更多?

在此输入图像描述

更新2:我禁用了剩余的自动参数:白平衡,场景模式,闪光.下面的快门滞后时间变化直方图似乎与运行OS 4.1.1的Nexus S一样好.这将是不错的要少得多的变异性快门延迟时间,也许通过指定Camera.takePicture)可选的最低快门延迟时间(这将延迟快门,如果它是指定的最小前准备好.我已向Android问题跟踪器发布了功能请求.如果您也有兴趣获取该功能,请在http://code.google.com/p/android/issues/detail?id=35785 " 加注星标"

在此输入图像描述

android android-camera

8
推荐指数
1
解决办法
2374
查看次数

如何使用Google Drive SDK为Android应用程序配置proguard?

当Eclipse在构建Quickstart:在Android示例应用程序上运行Drive App时包含proguard时,应用程序将失去上传文件的能力.

如果在没有proguard的情况下构建应用程序的发布版本,则可以正确配置Google API客户端ID.但是,在启用proguard的Eclipse中构建时,同一发行版本应用程序的文件上载不起作用.这是我有问题的proguard配置文件:

# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

-libraryjars /libs/android-support-v4.jar …
Run Code Online (Sandbox Code Playgroud)

eclipse android proguard google-drive-api

3
推荐指数
1
解决办法
5837
查看次数