Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added example_processed_texts.zip
Binary file not shown.
203 changes: 203 additions & 0 deletions examples/maxmsp/MagePackage/docs/mage~.maxref.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<c74object name="mage~" module="msp" category="MSP Synthesis, mage">

<digest>
HMM-based performative speech synthesis
</digest>

<description>
The <o>mage~</o> object
implements the mage speech synthesis toolbox as a MaxMSP object.
</description>


<!--METADATA-->
<metadatalist>
<metadata name="author">numediart</metadata>
<metadata name="tag">Audio</metadata>
<metadata name="tag">Speech</metadata>
<metadata name="tag">mage</metadata>
<metadata name="tag">Synthesis</metadata>
</metadatalist>


<!--ARGUMENTS-->
<!--
<objarglist>
<objarg name="buffername" type="symbol" optional="0">
<description>The name of a buffer to reference.</description>
</objarg>
</objarglist>
-->


<!--MESSAGES-->
<methodlist>
<method name="set">
<arglist><arg name="name" type="symbol" optional="0" id="0" /></arglist>
<description>Set the buffer to reference.</description>
</method>
<method name="reset">
<arglist></arglist>
<description>
Resets mage.
</description>
</method>
<method name="labelclear">
<arglist></arglist>
<description>
Empties mage label queue.
</description>
</method>
<method name="labelnext">
<arglist></arglist>
<description>
Jumps to next label.
</description>
</method>
<method name="labelfill">
<arglist></arglist>
<description>
Fills the label queue with labels from currently loaded label list file.
</description>
</method>
<method name="labelfilluntilend">
<arglist></arglist>
<description>
Like labelfill but starts from current label.
</description>
</method>
<method name="labelnextvowel">
<arglist></arglist>
<description>
Jumps to next vowel or pause label.
</description>
</method>
<method name="label">
<arglist><arg name="file path" type="symbol" optional="0" id="0" /></arglist>
<description>Loads .lab file at given path.</description>
</method>
<method name="engineadd">
<arglist><arg name="file path" type="symbol" optional="0" id="0" /><arg name="engine name" type="symbol" optional="0" id="1" /></arglist>
<description>Loads an engine at given path (2d argument) with a custom name (first argument).</description>
</method>
<method name="engineremove">
<arglist><arg name="engine name" type="symbol" optional="0" id="0" /></arglist>
<description>Removes an already loaded and named engine.</description>
</method>
<method name="volume">
<arglist><arg name="volume" type="float" optional="0" id="0" /></arglist>
<description> Sets mage audio output volume.
</description>
</method>
<method name="alpha">
<arglist><arg name="alpha" type="float" optional="0" id="0" /></arglist>
<description> Sets mage vocoder alpha value.
</description>
</method>
<method name="gamma">
<arglist><arg name="gamma" type="float" optional="0" id="0" /></arglist>
<description> Sets mage vocoder gamma value.
</description>
</method>
<method name="speed">
<arglist><arg name="speed value" type="float" optional="0" id="0" /><arg name="operation type" type="integer" optional="1" id="1" /></arglist>
<description> Sets or calculates a new frame length in samples.
</description>
</method>
<method name="pitch">
<arglist><arg name="pitch value" type="float" optional="0" id="0" /><arg name="operation type" type="integer" optional="1" id="1" /></arglist>
<description> Sets or calculates a new pitch frequency in hertz.
</description>
</method>
<method name="pitchoverwrite">
<arglist><arg name="pitch value" type="float" optional="0" id="0" /></arglist>
<description> Sets a new pitch value in hertz.
</description>
</method>
<method name="pitchscale">
<arglist><arg name="scale value" type="float" optional="0" id="0" /></arglist>
<description> Multiplies pitch by a given factor.
</description>
</method>
<method name="pitchshift">
<arglist><arg name="shift value" type="float" optional="0" id="0" /></arglist>
<description> Shifts pitch by a given amount of hertz.
</description>
</method>
<method name="pitchsynth">
<arglist></arglist>
<description>
Tells mage to compute the pitch.
</description>
</method>
<method name="labelreplace">
<arglist><arg name="label number" type="float" optional="0" id="0" /></arglist>
<description> Jump to nth label, labelnext will jump to nth label.
</description>
</method>
<method name="labelinsert">
<arglist><arg name="label number" type="float" optional="0" id="0" /></arglist>
<description> Jump to nth label.
</description>
</method>
<method name="labelswitch">
<arglist><arg name="label number" type="float" optional="0" id="0" /></arglist>
<description> Jump to nth label, labelnext will jump to (n+1)th label.
</description>
</method>
<method name="vibratoamp">
<arglist><arg name="vibrato amplitude" type="float" optional="0" id="0" /></arglist>
<description> Sets a vibrato amplitude.
</description>
</method>
<method name="vibratothresh">
<arglist><arg name="vibrato period threshhold" type="float" optional="0" id="0" /></arglist>
<description> Sets the size, in samples, of one vibrato period.
</description>
</method>
<method name="vibratozoom">
<arglist><arg name="vibrato zoom" type="float" optional="0" id="0" /></arglist>
<description> Sets the zoom factor in vibrato sine periods.
</description>
</method>
<method name="vibratooffset">
<arglist><arg name="vibrato period threshhold" type="float" optional="0" id="0" /></arglist>
<description> An offset factor (between -pi and +pi) for the vibrato sine periods.
</description>
</method>
<method name="duration">
<arglist><arg name="frame one" type="integer" optional="0" id="0" /><arg name="frame two" type="integer" optional="0" id="1" /><arg name="frame three" type="integer" optional="0" id="2" /><arg name="frame four" type="integer" optional="0" id="3" /><arg name="frame five" type="integer" optional="0" id="4" /><arg name="operation type" type="integer" optional="0" id="5" /></arglist>
<description> Sets or calculates a new duration in frames for each state of next label, given five integers : one for each state, and a last integer to set the type of operation to apply - overwrite, shift, scale, resynthesis, nothing.
</description>
</method>
</methodlist>


<!--ATTRIBUTES-->
<!--
<attributelist>
<attribute name="loop" get="1" set="1" type="int" size="1">
<description>Toggle on and off loop-recording.</description>
</attribute>
<attribute name="fade" get="1" set="1" type="float" size="1">
<description>Specifies the number of milliseconds over which newly recorded samples are faded into the buffer.</description>
</attribute>
<attribute name="channel" get="1" set="1" type="int" size="1">
<description>Specifies the channel number in the buffer to which new samples should be written.</description>
</attribute>
</attributelist>
-->


<!--SEEALSO-->
<!--
<seealsolist>
<seealso name="tap.buffer.record2~"/>
</seealsolist>
-->


</c74object>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
iLaXmax2
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FILE(GLOB SRC ${SRC} *.cpp *.c)
FILE(GLOB HDR ${HDR} *.hpp *.h)

INCLUDE_DIRECTORIES(${MAGE_HTS_ENGINE_PATH})
INCLUDE_DIRECTORIES(${MAGE_PORTAUDIO_PATH})
INCLUDE_DIRECTORIES(${MAGE_SPTK_PATH})

ADD_LIBRARY(${MAGE_LIB_NAME} ${SRC} ${HDR})
TARGET_LINK_LIBRARIES(${MAGE_LIB_NAME} pthread m)
TARGET_LINK_LIBRARIES(${MAGE_LIB_NAME} ${MAGE_LIB_NAME}-htsengine)
TARGET_LINK_LIBRARIES(${MAGE_LIB_NAME} ${MAGE_LIB_NAME}-sptk)
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/* ----------------------------------------------------------------- */
/* The HMM-Based Speech Synthesis Engine "hts_engine API" */
/* developed by HTS Working Group */
/* http://hts-engine.sourceforge.net/ */
/* ----------------------------------------------------------------- */
/* */
/* Copyright (c) 2001-2011 Nagoya Institute of Technology */
/* Department of Computer Science */
/* */
/* 2001-2008 Tokyo Institute of Technology */
/* Interdisciplinary Graduate School of */
/* Science and Engineering */
/* */
/* All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or */
/* without modification, are permitted provided that the following */
/* conditions are met: */
/* */
/* - Redistributions of source code must retain the above copyright */
/* notice, this list of conditions and the following disclaimer. */
/* - Redistributions in binary form must reproduce the above */
/* copyright notice, this list of conditions and the following */
/* disclaimer in the documentation and/or other materials provided */
/* with the distribution. */
/* - Neither the name of the HTS working group nor the names of its */
/* contributors may be used to endorse or promote products derived */
/* from this software without specific prior written permission. */
/* */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS */
/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, */
/* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */
/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON */
/* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY */
/* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
/* POSSIBILITY OF SUCH DAMAGE. */
/* ----------------------------------------------------------------- */
Loading