<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Just for fun的专栏]]></title><description><![CDATA[好玩，最重要]]></description><link>https://blog.youkuaiyun.com/QFire</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; QFire]]></copyright><item><title><![CDATA[vue项目打包后本地index运行]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/121509454</link><guid>https://blog.youkuaiyun.com/QFire/article/details/121509454</guid><author>QFire</author><pubDate>Wed, 24 Nov 2021 10:14:48 +0800</pubDate><description><![CDATA[vue-cli项目打包后直接在本机运行，config/index.js 中修改代码

build: {

  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  //加了一个小点
  assetsPublicPath: './',
 }


打包后图标不能用？
build / utils.js 中 return ExtractTextPlugin.ex...]]></description><category></category></item><item><title><![CDATA[安装 webrtcvad 出错]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/117016975</link><guid>https://blog.youkuaiyun.com/QFire/article/details/117016975</guid><author>QFire</author><pubDate>Wed, 19 May 2021 09:47:01 +0800</pubDate><description><![CDATA[可参考这篇文章https://ask.youkuaiyun.com/questions/1432431

下载编译好的包

https://drive.google.com/file/d/1ze3PHQtfpzCietKjyRT9Nd1t5jXKqtfS/view?usp=sharing

放入site-packages 中
]]></description><category></category></item><item><title><![CDATA[编译 lame （for IOS）]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/116276445</link><guid>https://blog.youkuaiyun.com/QFire/article/details/116276445</guid><author>QFire</author><pubDate>Thu, 29 Apr 2021 20:32:29 +0800</pubDate><description><![CDATA[网上找了许多编译lame的教程，结果都是编译失败，多次尝试后发现是编译脚本放错路径了，记录下编译的过程，把编译脚本放到源码文件夹中和修改编译脚本中的目录是关键。

一、首先去Lame官网 http://lame.sourceforge.net/download.php 下载源码（压缩包），这里以3.1版本为例。
二、到 https://github.com/kewlbear/lame-ios-build 下载编译脚本（压缩包）
三、解压源码，源码目录结构如下：



四、解压脚本，得到build-lame.]]></description><category></category></item><item><title><![CDATA[Android编译Lame库（Mp3编解码库）]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/116234782</link><guid>https://blog.youkuaiyun.com/QFire/article/details/116234782</guid><author>QFire</author><pubDate>Wed, 28 Apr 2021 15:24:46 +0800</pubDate><description><![CDATA[一、概述

　　Lame是目前最好的mp3编解码工具。

　　特点：音质好，压缩比比较高，被大量软件和硬件支持，应用广泛。

　　所以储备一下mp3的编解码知识还是很有必要的

二、编译示例

　　继上一节中新建的demo开始讲解：

　　1.下载lame源代码：下载

　　2.解压代码并把lame-3.99.5文件下，libmp3lame和include文件夹下的.c和.h文件都copy到cpp/lame文件夹下。

　　3.对源码进行修改

　　　　a.删除fft.c文件的47行的includ...]]></description><category></category></item><item><title><![CDATA[C/C++移植IOS(CMAKE编译与链接)]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/116073995</link><guid>https://blog.youkuaiyun.com/QFire/article/details/116073995</guid><author>QFire</author><pubDate>Fri, 23 Apr 2021 22:34:15 +0800</pubDate><description><![CDATA[背景:
需要把Linux下的C/C++代码移植到iOS平台下,iOS APP链接编译的静态库和动态库进行测试。

工具准备:
     mac一台
     cmake
     xcode

github上有一个iOS版的Cmake编译工具链：ios-cmake
基于该Cmake编译工具链将C/C++代码编译成iOS平台可用的静态库或者动态库。

编译

进入/C/C++源码目录下，新建ios.toolchain.cmake文件编辑内容如：ios.toolchain.cmake
	接着继续新建CMakeL]]></description><category></category></item><item><title><![CDATA[iOS 编译理解]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115506054</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115506054</guid><author>QFire</author><pubDate>Thu, 08 Apr 2021 09:57:42 +0800</pubDate><description><![CDATA[iOS的编译,使用了基于LLVM的编译器。Clang(或者Swift)作为编译前端,LLVM作为后端,将代码文件编译为当前架构所对应的可执行文件。

编译器通常分为前端和后端。


前端: 分析代码，生成后端使用的中间码。
	后端: 针对机器架构，生成对应的可执行机器码。
	前后端分离: 这样设计的好处则是,支持新语言的时候,只需要修改前端;支持新底层架构,只需改后端了。


Clang 是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。它采用了LLVM作...]]></description><category></category></item><item><title><![CDATA[Android NDK 编译原理]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115504592</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115504592</guid><author>QFire</author><pubDate>Thu, 08 Apr 2021 09:42:40 +0800</pubDate><description><![CDATA[一、gradle

gradle是Android Studio指定的自动编译脚本，它有点像 Linux C开发中的 Makefile。下面我来看下 Android Studio 是如何使用 Gradle 的。

在 Android 项目中，包括三个 gradle 文件, 它分分别是：

build.gradle是Android 项目的顶级脚本；
	setting.gradle里记录了 Android 项目里都包括了哪些子项目；
	app/build.gradle里记录了每个子模块应该如何进行编译。
	
下.]]></description><category></category></item><item><title><![CDATA[android studio 笔记]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115447369</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115447369</guid><author>QFire</author><pubDate>Mon, 05 Apr 2021 20:29:37 +0800</pubDate><description><![CDATA[第 8 章数据存储

应用程序的开发过程涉及数据的输入、输出和保存。Android提供了以下方式供开发者存取数据：SharedPreferences存储、文件存储、SQLite数据库存储和ContentProvider。

SharedPreferences是Android平台上一个轻量级的存储类，用于存储一些简单的key/value对（名值对）。它的value值只能是int型、long型、boolean型、string型和float型。应用程序中主要保存了一些常用的配置信息。

8.1.1　Shar...]]></description><category></category></item><item><title><![CDATA[iOS 真机调试 No profile for team ‘xxxx‘ matching ‘xxx‘ found:]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115383772</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115383772</guid><author>QFire</author><pubDate>Thu, 01 Apr 2021 20:33:55 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/8f764a7306a8?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation


]]></description><category></category></item><item><title><![CDATA[CMakeLists 简单笔记]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115318432</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115318432</guid><author>QFire</author><pubDate>Tue, 30 Mar 2021 10:07:16 +0800</pubDate><description><![CDATA[CMakeLists.txt用于组织c++文件及目录项，并根据CMakeLists.txt文件编写的规则cmake生成对应的可执行文件。CMakeLists.txt在Linux下编译及执行c++项目过程中是必不可少的利器。

【参数介绍】

PROJECT-------项目名称

SET...]]></description><category></category></item><item><title><![CDATA[Android JNI]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115032994</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115032994</guid><author>QFire</author><pubDate>Tue, 30 Mar 2021 09:51:45 +0800</pubDate><description><![CDATA[在Android OS上开发应用程序，Google提供了两种开发包：SDK和NDK。Android 平台从一开就已经支持了C/C++了。我们知道Android的SDK主要是基于Java的，所以导致了在用Android SDK进行开发的工程师们都必须使用Java语言。不过，Google从一开始就说明Android也支持JNI编程方式，也就是第三方应用完成可以通过JNI调用自己的C动态库。于是NDK就应运而生了。

什么是NDK

NDK 其中NDK的全拼是：Native Develop Kit。那我们先来..]]></description><category></category></item><item><title><![CDATA[在Android和iOS设备上调用C++代码]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115317156</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115317156</guid><author>QFire</author><pubDate>Tue, 30 Mar 2021 09:14:31 +0800</pubDate><description><![CDATA[不少Android和iOS项目中，因为种种原因不得不调用C/C++代码。这篇文章主要讲述如何通过Objective-C++、NDK技术在iOS及Android设备上调用C/C++代码。

主要工作原理





主要工作原理，如上图所示。Google Android提供NDK以便支持C/C++代码，而iOS可以通过Objective-C++(*.mm)来支持C/C++代码的编译运行。如果有朋友钻研过Cocos2d-x的话，应该对上述这些内容非常熟悉。好了，废话不多说，开始提供干货。

需要调用的C++代码.]]></description><category></category></item><item><title><![CDATA[openfst 学习笔记]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115251128</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115251128</guid><author>QFire</author><pubDate>Fri, 26 Mar 2021 17:13:51 +0800</pubDate><description><![CDATA[系统学习一下openfst的操作

tutorial


从最基本的 fst 图说起

从图中可以大致了解到 fst 包含的几个元素: 起始状态，终止状态（终止状态含有权重），转移边，边上有输入符号，输出符号，边权重

于是，对于输入串 ac, fst 会输出 xz 权重和为 6.5

对于 bc ,输出 yz， 权重和为 7.5

creating fst
创建fst的方式有两种，一是通过c++接口，二是通过shell脚本

本文以shell脚本方式为主

首先通过如下指令创建 text.fst


ca]]></description><category></category></item><item><title><![CDATA[lame库（iOS 和 Android）]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115249098</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115249098</guid><author>QFire</author><pubDate>Fri, 26 Mar 2021 16:35:58 +0800</pubDate><description><![CDATA[用LAME这个开源的MP3编码库在iOS平台和Android平台上将一个PCM文件编码为MP3文件，最终将编码后的MP3文件发送到电脑上即可进行播放

在iOS上如何搭建一个基础项目

xcode选择Single View Application模板，看到Xcode默认是以Story board的形式构建的界面部分，由于我们不希望使用这种形式来构建界面，而是希望使用xib的形式来构建界面，所以要在Main Interface选项中删除其中的内容。

接下来，再建立一个界面文件作为应用的第一个界面，而在iO.]]></description><category></category></item><item><title><![CDATA[swift 简单笔记]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115247854</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115247854</guid><author>QFire</author><pubDate>Fri, 26 Mar 2021 16:09:59 +0800</pubDate><description><![CDATA[和Objective-C语言冗长的函数名相比，Swift语言显得十分简洁，而在功能上，Swift也丝毫不会逊色于Objective-C，比较显著的特点是Swift语言支持元组类型，支持开发者定义运算符函数，简洁的流程控制语句以及强大的闭包技术。

Xcode开发工具的功能十分强大，可以进行macOS、iOS、tvOS、watchOS平台软件的开发，并且支持使用Objective-C与Swift两种语言环境，同时兼容C、C＋＋语言环境。

第2章 量值与基本数据类型

在Swift语言中，let关键字和var]]></description><category></category></item><item><title><![CDATA[objective-c 简单笔记]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/115241918</link><guid>https://blog.youkuaiyun.com/QFire/article/details/115241918</guid><author>QFire</author><pubDate>Fri, 26 Mar 2021 14:40:40 +0800</pubDate><description><![CDATA[Objective-C源文件使用“.m”作为文件名的扩展名，Xcode可以编译的文件扩展名如下所示。
.c：C语言源文件、.cc或.cpp：C++语言源文件、.h：头文件、.m：Objective-C源文件、.mm：Objective-C++源文件、.pl：Perl源文件、.o：已经编译的文件。

#import &lt;Foundation/Foundation.h&gt;

在Objective-C语言中，编译器指令以 @ 符号开始，这个符号经常用在使用类和对象的情况









int main]]></description><category></category></item><item><title><![CDATA[Mac 下编译 Kaldi Android (arm) .so 库]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/113573617</link><guid>https://blog.youkuaiyun.com/QFire/article/details/113573617</guid><author>QFire</author><pubDate>Tue, 02 Feb 2021 20:34:32 +0800</pubDate><description><![CDATA[话说之前公司里面一直用到的是 PocketSphinx , 但是在新的项目中有一个应用的场景，这时候发现噪声影响以及识别的精确度方面都不是很理想。于是在 Telegram Channel 里面咨询了下，@nshmyrev 回复建议可以利用 Kaldi DNN 模型，应该会有显著提升。于是考虑转向研究 Kaldi。

首先碰到的一个问题是跨平台编译。网上搜索后发现，被引用最多的一篇文章（下文简称“编译指南”）是 compile-kaldi-android，但它是基于 Ubuntu 环境来编译的，也看到了编译 ]]></description><category></category></item><item><title><![CDATA[[!] Gradle threw an error while downloading artifacts from the network. Retrying to download... Runn]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/113270381</link><guid>https://blog.youkuaiyun.com/QFire/article/details/113270381</guid><author>QFire</author><pubDate>Wed, 27 Jan 2021 20:30:45 +0800</pubDate><description><![CDATA[配置flutter出现这个问题，百度搜索，说是因为gradle版本过低，所以报错。更改版本就可以，但是本人改了好久都没有成功 反而换各种版本都试过了，甚至重装系统，都无效，最后。。。。。。。搭建了个本地的gradle gradle如果你没有点击这里

把zip包直接放到c盘某个位置 并更改android/gradle/wrapper/gradle-wrapper.properties里的


distributionUrl   改成本地的地址 比如本人的地址


C:/Users/Administr...]]></description><category></category></item><item><title><![CDATA[Kaldi(A5)语言模型及HCLG.fst生成]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/111769154</link><guid>https://blog.youkuaiyun.com/QFire/article/details/111769154</guid><author>QFire</author><pubDate>Sat, 26 Dec 2020 20:54:50 +0800</pubDate><description><![CDATA[这节介绍一下如何修改生成适合自己场景的语言模型。

Ref

Online decoding in Kaldi(Nnet2) http://kaldi-asr.org/doc/online_decoding.html

修改语言模型

首先，我们为什么要修改语言模型？虽然已有现成的Fisher_English或者Librispeech的HCLG.fst，但是他们用到的是3-gram，也就是说上下文一共是3个单词，而且文本涵盖的范围很广。假如我只想在特定范围内进行识别呢？比如仅仅在对某个智能音箱的指令范围内？]]></description><category></category></item><item><title><![CDATA[C++标准库笔记 2]]></title><link>https://blog.youkuaiyun.com/QFire/article/details/111614817</link><guid>https://blog.youkuaiyun.com/QFire/article/details/111614817</guid><author>QFire</author><pubDate>Sat, 26 Dec 2020 12:23:15 +0800</pubDate><description><![CDATA[7、容器

7.1、容器的共通能力

三个最核心的能力：

所有容器提供的都是“value 语义” 而非 “reference 语义”。
	元素有特定顺序。
	各项操作并非绝对安全，调用者必须确保传参检查。
初始化







所有容器提供的类型



8、细探 STL 容器成员

创建、复制和销毁

9、迭代器

头文件





10、STL 函数对象及 Lambda

lambda

11、STL 算法

&lt;algorithm&gt;

12、特殊容器

三种标准的 stacks, queu.]]></description><category></category></item></channel></rss>