how to change some of audio default - audio-processing

I have wav file and I want to change some of the options from dic variable
optimization = {
'amplify': '2.2 dB',
'bass': '9.0 dB',
'treble': '-1.0 dB',
'volume': '1.0 dB',
'speed': '0.98',
'high-pass': {
'frequency': '1000 Hz',
'roll-off': '6dB per octave',
},
'low-pass': {
'frequency': '1000 Hz',
'roll-off': '6dB per octave',
},
'snap-to': 'nearest',
'quality': 'insane-320 kbps',
'variable-speed': 'standard',
'chanel-mode': 'joint-stereo',
'rate': '16000 HZ',
}
and save that for my sppech-to-text model

Related

Change nuxt-i18n locale with cookie on site load

I've two locale; "fa" and "en" with fa being default. I've tried to change it with the following code block both on nuxtServerInit and fetch hook of layout but it still revert back to my default locale and gives me json.parse error on route change.
// using "nuxt": "^2.15.8" , "#nuxtjs/i18n": "^7.2.0" , "#nuxtjs/universal-storage": "^0.5.9" , "#nuxtjs/vuetify": "^1.12.3"
async fetch(){
let locale = this.$storage.getCookie('localeLang')
if(!!locale){
await this.$i18n.setLocale(locale)
this.$vuetify.rtl = this.$i18n.localeProperties.dir === 'rtl'
this.$storage.setCookie('localeLang', locale, {maxAge: 315360000})
}
}
When using in fetch hook i can see for a moment that it's in en then revert back to fa . but the htmlAttr of meta are set according to en locale (which has been set on cookie)
So what should I do? Any idea?
// nuxt.config.js
i18n: {
baseURL: process.env.DEFAULT_BASE_URL,
locales:[
{
code: 'fa',
iso: 'fa-IR',
file: 'fa.js',
currency: {name:'تومان', sign:'ت'},
dir: 'rtl',
name: 'فارسی',
initial: 'FA',
},
{
code: 'en',
iso: 'en-US',
file: 'en.js',
currency: {name:'Dollar', sign:'$'},
dir: 'ltr',
name: 'English',
initial: 'EN',
},
],
defaultLocale: 'fa',
strategy: 'no_prefix',
lazy: true,
langDir: '~/locale/lang/',
detectBrowserLanguage: false,
// vueI18n: '~/plugins/vue-i18n.js',
},

How do I fix sitemap errors?

Sitemap Doesn't work
I can't get the site map URL and I can't use the /sitemap.xml URL
How do I fix it??
siteMetadata: {
siteUrl: siteAddress.href, // which is "https://www.example.com/"
},
{
resolve: `gatsby-plugin-sitemap`,
options: {
head: true,
output: `/sitemap.xml`,
}
Have you tried building your project? From the docs:
NOTE: This plugin only generates output when run in production mode! To test your sitemap, run: gatsby build && gatsby serve
In addition, your plugin's options are not valid: head should be createLinkInHead. A full sample with queries should look like:
{
resolve: `gatsby-plugin-sitemap`,
options: {
output: `/some-other-sitemap.xml`,
createLinkInHead: true,
exclude: [`/category/*`, `/path/to/page`],
query: `
{
wp {
generalSettings {
siteUrl
}
}
allSitePage {
nodes {
path
}
}
}`,
resolveSiteUrl: ({site, allSitePage}) => {
return site.wp.generalSettings.siteUrl
},
serialize: ({ site, allSitePage }) =>
allSitePage.nodes.map(node => {
return {
url: `${site.wp.generalSettings.siteUrl}${node.path}`,
changefreq: `daily`,
priority: 0.7,
}
})
}
}
Alternatively, you can use gatsby-plugin-advanced-sitemap which has more customizable options.

Using karma-typescript with graphql-tag loader

I am trying to run tests written in TypeScript using tape and the karma-typescript loader.
In my project I use webpack with graphql-tag/loader and import the queries directly into my TypeScript files like:
import myQuery from "../query/hello.graphql";
These imports are causing issues when I try and run the tests.
module.exports = function (config) {
config.set({
frameworks: ["tap", "karma-typescript"],
files: [
"src/**/*.ts",
"src/**/*.tsx",
"query/**/*.graphql"
],
preprocessors: {
"src/**/*.ts": ["karma-typescript"],
"src/**/*.tsx": ["karma-typescript"]
},
karmaTypescriptConfig: {
compilerOptions: {
"skipLibCheck": true,
"allowSyntheticDefaultImports": true
},
bundlerOptions: {
transforms: [
require("karma-typescript-es6-transform")()
]
}
},
reporters: ["progress", "karma-typescript"],
browsers: ["Firefox"]
});
};
I guess that I would ideally like to perform a second transform on the .graphql files. Based on the approach used in jest-transform-graphql, I tried adding another transform:
function (context, callback) {
if (/\.graphql$/.test(context.module)) {
context.source = loader.call({ cacheable() { } }, context.source);
return callback(undefined, true);
}
return callback(undefined, false);
}
But I still get errors like:
{
"message": "SyntaxError: unexpected token: identifier\nat query/hello.graphql:1:6\n\n",
"str": "SyntaxError: unexpected token: identifier\nat query/hello.graphql:1:6\n\n"
}
How can I apply the transformation to the graphql files, so that I don't get syntax errors from them in the browser?

Including socket.io when compiling assets using Laravel Mix results in error on Windows 10

Trying to work with Broadcasting using Laravel Echo/Redis/Socket.io, with the following versions:
node v6.11.3
npm v5.4.2
Laravel 5.4
npm run dev (or production) results in a dependency error where module 'fs' is required, although it was considered optional when installing socket.io.
I've uninstalled npm and started from scratch, sifted through tons of google results referencing a possible solution, can anyone assist?
Below is a copy of my webpack config:
let path = require('path');
let glob = require('glob');
let webpack = require('webpack');
let Mix = require('laravel-mix').config;
let webpackPlugins = require('laravel-mix').plugins;
let dotenv = require('dotenv')
/*
|--------------------------------------------------------------------------
| Load Environment Variables
|--------------------------------------------------------------------------
|
| Load environment variables from .env file. dotenv will never modify
| any environment variables that have already been set.
|
*/
dotenv.config({
path: Mix.Paths.root('.env')
});
/*
|--------------------------------------------------------------------------
| Mix Initialization
|--------------------------------------------------------------------------
|
| As our first step, we'll require the project's Laravel Mix file
| and record the user's requested compilation and build steps.
| Once those steps have been recorded, we may get to work.
|
*/
Mix.initialize();
/*
|--------------------------------------------------------------------------
| Webpack Context
|--------------------------------------------------------------------------
|
| This prop will determine the appropriate context, when running Webpack.
| Since you have the option of publishing this webpack.config.js file
| to your project root, we will dynamically set the path for you.
|
*/
module.exports.context = Mix.Paths.root();
/*
|--------------------------------------------------------------------------
| Webpack Entry
|--------------------------------------------------------------------------
|
| We'll first specify the entry point for Webpack. By default, we'll
| assume a single bundled file, but you may call Mix.extract()
| to make a separate bundle specifically for vendor libraries.
|
*/
module.exports.entry = Mix.entry().get();
/*
|--------------------------------------------------------------------------
| Webpack Output
|--------------------------------------------------------------------------
|
| Webpack naturally requires us to specify our desired output path and
| file name. We'll simply echo what you passed to with Mix.js().
| Note that, for Mix.version(), we'll properly hash the file.
|
*/
module.exports.output = Mix.output();
/*
|--------------------------------------------------------------------------
| Rules
|--------------------------------------------------------------------------
|
| Webpack rules allow us to register any number of loaders and options.
| Out of the box, we'll provide a handful to get you up and running
| as quickly as possible, though feel free to add to this list.
|
*/
let plugins = [];
if (Mix.options.extractVueStyles) {
var vueExtractTextPlugin = Mix.vueExtractTextPlugin();
plugins.push(vueExtractTextPlugin);
}
let rules = [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: Mix.options.extractVueStyles ? {
js: 'babel-loader' + Mix.babelConfig(),
scss: vueExtractTextPlugin.extract({
use: 'css-loader!sass-loader',
fallback: 'vue-style-loader'
}),
sass: vueExtractTextPlugin.extract({
use: 'css-loader!sass-loader?indentedSyntax',
fallback: 'vue-style-loader'
}),
less: vueExtractTextPlugin.extract({
use: 'css-loader!less-loader',
fallback: 'vue-style-loader'
}),
stylus: vueExtractTextPlugin.extract({
use: 'css-loader!stylus-loader?paths[]=node_modules',
fallback: 'vue-style-loader'
}),
css: vueExtractTextPlugin.extract({
use: 'css-loader',
fallback: 'vue-style-loader'
})
}: {
js: 'babel-loader' + Mix.babelConfig(),
scss: 'vue-style-loader!css-loader!sass-loader',
sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
less: 'vue-style-loader!css-loader!less-loader',
stylus: 'vue-style-loader!css-loader!stylus-loader?paths[]=node_modules'
},
postcss: Mix.options.postCss,
preLoaders: Mix.options.vue.preLoaders,
postLoaders: Mix.options.vue.postLoaders
}
},
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader' + Mix.babelConfig()
},
{
test: /\.css$/,
loaders: ['style-loader', 'css-loader']
},
{
test: /\.html$/,
loaders: ['html-loader']
},
{
test: /\.(png|jpe?g|gif)$/,
loaders: [
{
loader: 'file-loader',
options: {
name: path => {
if (! /node_modules|bower_components/.test(path)) {
return 'images/[name].[ext]?[hash]';
}
return 'images/vendor/' + path
.replace(/\\/g, '/')
.replace(
/((.*(node_modules|bower_components))|images|image|img|assets)\//g, ''
) + '?[hash]';
},
publicPath: Mix.options.resourceRoot
}
},
{
loader: 'img-loader',
options: Mix.options.imgLoaderOptions
}
]
},
{
test: /\.(woff2?|ttf|eot|svg|otf)$/,
loader: 'file-loader',
options: {
name: path => {
if (! /node_modules|bower_components/.test(path)) {
return 'fonts/[name].[ext]?[hash]';
}
return 'fonts/vendor/' + path
.replace(/\\/g, '/')
.replace(
/((.*(node_modules|bower_components))|fonts|font|assets)\//g, ''
) + '?[hash]';
},
publicPath: Mix.options.resourceRoot
}
},
{
test: /\.(cur|ani)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]',
publicPath: Mix.options.resourceRoot
}
}
];
let extensions = ['*', '.js', '.jsx', '.vue'];
if (Mix.ts) {
rules.push({
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/,
});
extensions.push('.ts', '.tsx');
}
let sassRule = {
test: /\.s[ac]ss$/,
loaders: ['style-loader', 'css-loader', 'sass-loader']
};
if (Mix.preprocessors) {
sassRule.exclude = Mix.preprocessors.map(preprocessor => preprocessor.test());
}
rules.push(sassRule);
if (Mix.preprocessors) {
Mix.preprocessors.forEach(preprocessor => {
rules.push(preprocessor.rules());
plugins.push(preprocessor.extractPlugin);
});
}
module.exports.module = { rules };
/*
|--------------------------------------------------------------------------
| Resolve
|--------------------------------------------------------------------------
|
| Here, we may set any options/aliases that affect Webpack's resolving
| of modules. To begin, we will provide the necessary Vue alias to
| load the Vue common library. You may delete this, if needed.
|
*/
module.exports.resolve = {
extensions,
alias: {
'vue$': 'vue/dist/vue.common.js'
}
};
/*
|--------------------------------------------------------------------------
| Stats
|--------------------------------------------------------------------------
|
| By default, Webpack spits a lot of information out to the terminal,
| each you time you compile. Let's keep things a bit more minimal
| and hide a few of those bits and pieces. Adjust as you wish.
|
*/
module.exports.stats = {
hash: false,
version: false,
timings: false,
children: false,
errors: false
};
process.noDeprecation = true;
module.exports.performance = { hints: false };
/*
|--------------------------------------------------------------------------
| Devtool
|--------------------------------------------------------------------------
|
| Sourcemaps allow us to access our original source code within the
| browser, even if we're serving a bundled script or stylesheet.
| You may activate sourcemaps, by adding Mix.sourceMaps().
|
*/
module.exports.devtool = Mix.options.sourcemaps;
/*
|--------------------------------------------------------------------------
| Webpack Dev Server Configuration
|--------------------------------------------------------------------------
|
| If you want to use that flashy hot module replacement feature, then
| we've got you covered. Here, we'll set some basic initial config
| for the Node server. You very likely won't want to edit this.
|
*/
module.exports.devServer = {
headers: {
"Access-Control-Allow-Origin": "*"
},
historyApiFallback: true,
noInfo: true,
compress: true,
quiet: true
};
/*
|--------------------------------------------------------------------------
| Plugins
|--------------------------------------------------------------------------
|
| Lastly, we'll register a number of plugins to extend and configure
| Webpack. To get you started, we've included a handful of useful
| extensions, for versioning, OS notifications, and much more.
|
*/
plugins.push(
new webpack.ProvidePlugin(Mix.autoload || {}),
new webpackPlugins.FriendlyErrorsWebpackPlugin({ clearConsole: Mix.options.clearConsole }),
new webpackPlugins.StatsWriterPlugin({
filename: 'mix-manifest.json',
transform: Mix.manifest.transform.bind(Mix.manifest),
}),
new webpack.LoaderOptionsPlugin({
minimize: Mix.inProduction,
options: {
postcss: Mix.options.postCss,
context: __dirname,
output: { path: './' }
}
})
);
if (Mix.browserSync) {
plugins.push(
new webpackPlugins.BrowserSyncPlugin(
Object.assign({
host: 'localhost',
port: 3000,
proxy: 'app.dev',
files: [
'app/**/*.php',
'resources/views/**/*.php',
'public/js/**/*.js',
'public/css/**/*.css'
]
}, Mix.browserSync),
{
reload: false
}
)
);
}
if (Mix.options.notifications) {
plugins.push(
new webpackPlugins.WebpackNotifierPlugin({
title: 'Laravel Mix',
alwaysNotify: true,
contentImage: Mix.Paths.root('node_modules/laravel-mix/icons/laravel.png')
})
);
}
if (Mix.copy.length) {
new webpackPlugins.CopyWebpackPlugin(Mix.copy);
}
if (Mix.entry().hasExtractions()) {
plugins.push(
new webpack.optimize.CommonsChunkPlugin({
names: Mix.entry().getExtractions(),
minChunks: Infinity
})
);
}
if (Mix.options.versioning) {
plugins.push(
new webpack[Mix.inProduction ? 'HashedModuleIdsPlugin': 'NamedModulesPlugin'](),
new webpackPlugins.WebpackChunkHashPlugin()
);
} else if (Mix.options.hmr) {
plugins.push(
new webpack.NamedModulesPlugin()
);
}
if (Mix.options.purifyCss) {
let PurifyCSSPlugin = require('purifycss-webpack');
// By default, we'll scan all Blade and Vue files in our project.
let paths = glob.sync(Mix.Paths.root('resources/views/**/*.blade.php')).concat(
Mix.entry().scripts.reduce((carry, js) => {
return carry.concat(glob.sync(js.base + '/**/*.vue'));
}, [])
);
plugins.push(new PurifyCSSPlugin(
Object.assign({ paths }, Mix.options.purifyCss, { minimize: Mix.inProduction })
));
}
if (Mix.inProduction && Mix.options.uglify) {
plugins.push(
new webpack.optimize.UglifyJsPlugin(Mix.options.uglify)
);
}
plugins.push(
new webpack.DefinePlugin(
Mix.definitions({
NODE_ENV: Mix.inProduction
? 'production'
: ( process.env.NODE_ENV || 'development' )
})
),
new webpackPlugins.WebpackOnBuildPlugin(
stats => global.events.fire('build', stats)
)
);
if (! Mix.entry().hasScripts()) {
plugins.push(new webpackPlugins.MockEntryPlugin(Mix.output().path));
}
module.exports.plugins = plugins;
/*
|--------------------------------------------------------------------------
| Mix Finalizing
|--------------------------------------------------------------------------
|
| Now that we've declared the entirety of our Webpack configuration, the
| final step is to scan for any custom configuration in the Mix file.
| If mix.webpackConfig() is called, we'll merge it in, and build!
|
*/
if (Mix.webpackConfig) {
module.exports = require('webpack-merge').smart(
module.exports, Mix.webpackConfig
);
}
Add the following to your Webpack config:
node: {
fs: "empty"
}
source here
EDIT
in your gulpfile.js add :
Elixir.webpack.mergeConfig({
node: {
fs: 'empty',
}
});
exemple :
var elixir = require('laravel-elixir');
require('laravel-elixir-vue');
Elixir.webpack.mergeConfig({
node: {
fs: 'empty',
}
});
...
OR IN YOUR webpack.config.js
edit like this :
mix.webpackConfig({
node: {
fs: "empty"
},
resolve: {
alias: {
"handlebars" : "handlebars/dist/handlebars.js"
}
},
});
After this error was resolved through the answer below, I received the error:
"the request of a dependency is an expression".
The following article helped clear up this additional error: source
This was the additional code that was added to my webpack.config.js:
let fs = require('fs');
var nodeModules = {};
fs.readdirSync('node_modules')
.filter(function(x) {
return ['.bin'].indexOf(x) === -1;
})
.forEach(function(mod) {
nodeModules[mod] = 'commonjs ' + mod;
});
module.exports = {
target: 'node',
externals: nodeModules
}
Hopefully this helps someone else.

Configurable redirect URL in DocPad

I'm using DocPad to generate system documentation. I am including release notes in the format
http://example.com/releases/1.0
http://example.com/releases/1.1
http://example.com/releases/1.2
http://example.com/releases/1.3
I want to include a link which will redirect to the most recent release.
http://example.com/releases/latest
My question: how do I make a link that will redirect to a relative URL based on configuration? I want this to be easily changeable by a non-programmer.
Update: I've added cleanurls into my docpad.js, similar to example below. (see code below). But using "grunt docpad:generate" seems to skip making the redirect (is this an HTML page?). I've a static site. I also confirmed I'm using the latest cleanurls (2.8.1) in my package.json.
Here's my docpad.js
'use strict';
var releases = require('./releases.json'); // list them as a list, backwards: ["1.3", "1.2", "1.1", "1.0"]
var latestRelease = releases.slice(1,2)[0];
module.exports = {
outPath: 'epicenter/docs/',
templateData: {
site: {
swiftype: {
apiKey: 'XXXX',
resultsUrl: '/epicenter/docs/search.html'
},
ga: 'XXXX'
},
},
collections: {
public: function () {
return this.getCollection('documents').findAll({
relativeOutDirPath: /public.*/, isPage: true
});
}
},
plugins: {
cleanurls: {
simpleRedirects: {'/public/releases/latest': '/public/releases/' + latestRelease}
},
lunr: {
resultsTemplate: 'src/partials/teaser.html.eco',
indexes: {
myIndex: {
collection: 'public',
indexFields: [{
name: 'title',
boost: 10
}, {
name: 'body',
boost: 1
}]
}
}
}
}
};
When I run grunt docpad:generate, my pages get generated, but there is an error near the end:
/data/jenkins/workspace/stage-epicenter-docs/docs/docpad/node_modules/docpad-plugin-cleanurls/node_modules/taskgroup/node_modules/ambi/es6/lib/ambi.js:5
export default function ambi (method, ...args) {
^^^^^^
I can't tell if that's the issue preventing this from running but it seems suspicious.
Providing that your configuration is available to the DocPad Configuration File, you can use the redirect abilities of the cleanurls plugin to accomplish this for both dynamic and static environments.
With a docpad.coffee configuration file, it would look something like this:
releases = require('./releases.json') # ['1.0', '1.1', '1.2', '1.3']
latestRelease = releases.slice(-1)[0]
docpadConfig =
plugins:
cleanurls:
simpleRedirects:
'/releases/latest': '/releases/' + latestRelease
module.exports = docpadConfig

Resources