SlideShare a Scribd company logo
1 of 8
談話と特殊効果
Text-to-Speech
(その1)
第3回 MOSA自習室
Bitz Co., Ltd. 村上幸雄
• テキストを読み上げるだけだと簡単。
• 日本語音声データも付属するようになった。
• これにAudio Unitでエフェクトをかけてみようと
思っている。
Cocoaでは
NSSpeechSynthesizer *synthesizer = [[NSSpeechSynthesizer alloc] init];
[synthesizer setDelegate:self];
[synthesizer startSpeakingString:@"Hello, world."];
- (void)speehSynthesizer:(NSSpeechSynthesizer *)sender
didFinishSpeaking:(BOOL)finishedpeaking
{
...
}
Core Foundationでは
SpeechChannel *chan;
err = NewSpeechChannel(NULL, &chan);
CFNumber *callback = CFNumberCreate(NULL, kCFNumberLongType, HighlightSpoken
err = SetSpeechProperty(chan, kSpeechWordCFCallBack, callback);
err = SpeakCFString(chan, CFSTR("Hello, world."), NULL);
void HighlightSpokenWord(SpeechChannel chan,
SRefCo refCon,
CFStringRef aString,
CFRange wordRange)
{
....
}
• Autio Unitと繋げる方法が、WWDC動画とヘッダ
ーファイルのコメントで説明されている。
SpeechSynthesis.h
/*------------------------------------------*/
/* AudioUnit constants - new in 10.5 */
/*------------------------------------------*/
enum {
kAudioUnitSubType_SpeechSynthesis = 'ttsp', /* kAudioUnitType_Generator */
kAudioUnitProperty_Voice = 3330, /* Get/Set (VoiceSpec) */
kAudioUnitProperty_SpeechChannel = 3331 /* Get (SpeechChannel) */
};
• ディレクトかけてみる。
• 次回は、より詳しく調べたことを発表してみよ
うと考えている。
AUNode inputNode, effectNode, outputNode;
NewAUGraph(&_auGraph);
AudioComponentDescription cd;
cd.componentType = kAudioUnitType_Generator;
cd.componentSubType = kAudioUnitSubType_SpeechSynthesis;
cd.componentManufacturer = kAudioUnitManufacturer_Apple;
cd.componentFlags = 0;
cd.componentFlagsMask = 0;
AUGraphAddNode(_auGraph, &cd, &inputNode);
cd.componentType = kAudioUnitType_Effect;
cd.componentSubType = kAudioUnitSubType_Delay;
AUGraphAddNode(_auGraph, &cd, &effectNode);
cd.componentType = kAudioUnitType_Output;
cd.componentSubType = kAudioUnitSubType_DefaultOutput;
AUGraphAddNode(_auGraph, &cd, &outputNode);
AUGraphConnectNodeInput(_auGraph, inputNode, 0, effectNode, 0);
AUGraphConnectNodeInput(_auGraph, effectNode, 0, outputNode, 0);
AUGraphOpen(_auGraph);
AUGraphInitialize(_auGraph);
AudioUnit generateAudioUnit;
AUGraphNodeInfo(_auGraph, inputNode, NULL, &generateAudioUnit);
SpeechChannel channel;
UInt32 sz = sizeof(SpeechChannel);
AudioUnitGetProperty(generateAudioUnit, kAudioUnitProperty_SpeechChannel,
kAudioUnitScope_Global, 0, &channel, &sz);
AUGraphStart(_auGraph);
SpeakCFString(channel, CFSTR("Hello, world."), NULL);

More Related Content

What's hot

クックパッドのスケーリング
クックパッドのスケーリングクックパッドのスケーリング
クックパッドのスケーリングSatoshi Takada
 
やってみようCHaser - LOUPE Study #7
やってみようCHaser - LOUPE Study #7やってみようCHaser - LOUPE Study #7
やってみようCHaser - LOUPE Study #7Takuya Mukohira
 
LinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようLinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようMasataka Tsukamoto
 
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!Masataka Tsukamoto
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門l_b__
 
YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談Kensuke Nagae
 
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jOsc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jAkira Yoshiyama
 
関西オープンソース 2008 30days Albumの裏側
関西オープンソース 2008 30days Albumの裏側関西オープンソース 2008 30days Albumの裏側
関西オープンソース 2008 30days Albumの裏側Gosuke Miyashita
 

What's hot (10)

クックパッドのスケーリング
クックパッドのスケーリングクックパッドのスケーリング
クックパッドのスケーリング
 
やってみようCHaser - LOUPE Study #7
やってみようCHaser - LOUPE Study #7やってみようCHaser - LOUPE Study #7
やってみようCHaser - LOUPE Study #7
 
Lithium Labo #1
Lithium Labo #1Lithium Labo #1
Lithium Labo #1
 
LinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようLinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみよう
 
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!
 
Puppet入門
Puppet入門Puppet入門
Puppet入門
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門
 
YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談
 
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jOsc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 j
 
関西オープンソース 2008 30days Albumの裏側
関西オープンソース 2008 30days Albumの裏側関西オープンソース 2008 30days Albumの裏側
関西オープンソース 2008 30days Albumの裏側
 

Viewers also liked

Oakwook Asia Neighbourhood Campaign Thonglor Bangkok
Oakwook Asia Neighbourhood Campaign Thonglor BangkokOakwook Asia Neighbourhood Campaign Thonglor Bangkok
Oakwook Asia Neighbourhood Campaign Thonglor BangkokS.E.A Images Co Ltd, Thailand
 
Lang-aux-functions
Lang-aux-functionsLang-aux-functions
Lang-aux-functionsjjaviering
 
Devadas Pranassery _ KSEB Dy. CE (HRM) _ Experience Cerificate
Devadas Pranassery _ KSEB Dy. CE (HRM) _ Experience CerificateDevadas Pranassery _ KSEB Dy. CE (HRM) _ Experience Cerificate
Devadas Pranassery _ KSEB Dy. CE (HRM) _ Experience CerificateDevadas Pranassery
 
Introdução a Hooks - Aprenda a customizar o WordPress com filtros e ações
Introdução a Hooks - Aprenda a customizar o WordPress com filtros e açõesIntrodução a Hooks - Aprenda a customizar o WordPress com filtros e ações
Introdução a Hooks - Aprenda a customizar o WordPress com filtros e açõesfrq
 
Code Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan Glase
Code Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan GlaseCode Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan Glase
Code Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan GlaseOPITZ CONSULTING Deutschland
 
Francisco Alexandre - 31mai14 1º Congresso A&R SUS
Francisco Alexandre - 31mai14 1º Congresso A&R SUSFrancisco Alexandre - 31mai14 1º Congresso A&R SUS
Francisco Alexandre - 31mai14 1º Congresso A&R SUSAutismo & Realidade
 
IOSH Managing Safely Certificate
IOSH Managing Safely CertificateIOSH Managing Safely Certificate
IOSH Managing Safely CertificateClaire Ransom-Dart
 
Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016Carlos Buenosvinos
 
Software Coding- Software Coding
Software Coding- Software CodingSoftware Coding- Software Coding
Software Coding- Software CodingNikhil Pandit
 

Viewers also liked (18)

Comunicació en grup
Comunicació en grupComunicació en grup
Comunicació en grup
 
Windows xp
Windows xpWindows xp
Windows xp
 
Oakwook Asia Neighbourhood Campaign Thonglor Bangkok
Oakwook Asia Neighbourhood Campaign Thonglor BangkokOakwook Asia Neighbourhood Campaign Thonglor Bangkok
Oakwook Asia Neighbourhood Campaign Thonglor Bangkok
 
Lang-aux-functions
Lang-aux-functionsLang-aux-functions
Lang-aux-functions
 
Resume
ResumeResume
Resume
 
Devadas Pranassery _ KSEB Dy. CE (HRM) _ Experience Cerificate
Devadas Pranassery _ KSEB Dy. CE (HRM) _ Experience CerificateDevadas Pranassery _ KSEB Dy. CE (HRM) _ Experience Cerificate
Devadas Pranassery _ KSEB Dy. CE (HRM) _ Experience Cerificate
 
Introdução a Hooks - Aprenda a customizar o WordPress com filtros e ações
Introdução a Hooks - Aprenda a customizar o WordPress com filtros e açõesIntrodução a Hooks - Aprenda a customizar o WordPress com filtros e ações
Introdução a Hooks - Aprenda a customizar o WordPress com filtros e ações
 
Actividad 3.3
Actividad 3.3Actividad 3.3
Actividad 3.3
 
Counselling
CounsellingCounselling
Counselling
 
Copia De Fontanarrosa
Copia De FontanarrosaCopia De Fontanarrosa
Copia De Fontanarrosa
 
Code Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan Glase
Code Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan GlaseCode Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan Glase
Code Analyse mit Codenarc - Gearconf 2011 - OPITZ CONSULTING - Stefan Glase
 
Andragogia y pedagogía
Andragogia y pedagogíaAndragogia y pedagogía
Andragogia y pedagogía
 
B.Tech certificate
B.Tech certificateB.Tech certificate
B.Tech certificate
 
Francisco Alexandre - 31mai14 1º Congresso A&R SUS
Francisco Alexandre - 31mai14 1º Congresso A&R SUSFrancisco Alexandre - 31mai14 1º Congresso A&R SUS
Francisco Alexandre - 31mai14 1º Congresso A&R SUS
 
IOSH Managing Safely Certificate
IOSH Managing Safely CertificateIOSH Managing Safely Certificate
IOSH Managing Safely Certificate
 
Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016
 
O Electronie słów kilka
O Electronie słów kilkaO Electronie słów kilka
O Electronie słów kilka
 
Software Coding- Software Coding
Software Coding- Software CodingSoftware Coding- Software Coding
Software Coding- Software Coding
 

More from 幸雄 村上

アプリケーション識別子.pdf
アプリケーション識別子.pdfアプリケーション識別子.pdf
アプリケーション識別子.pdf幸雄 村上
 
圧縮ネイティブ・ライブラリについて.pdf
圧縮ネイティブ・ライブラリについて.pdf圧縮ネイティブ・ライブラリについて.pdf
圧縮ネイティブ・ライブラリについて.pdf幸雄 村上
 
分散環境におけるジャストインタイム設定の試み
分散環境におけるジャストインタイム設定の試み分散環境におけるジャストインタイム設定の試み
分散環境におけるジャストインタイム設定の試み幸雄 村上
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する幸雄 村上
 
え!それって参照渡し?
え!それって参照渡し?え!それって参照渡し?
え!それって参照渡し?幸雄 村上
 
プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)
プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)
プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)幸雄 村上
 
AppleScriptとは何ぞや
AppleScriptとは何ぞやAppleScriptとは何ぞや
AppleScriptとは何ぞや幸雄 村上
 
Web API 通信の符号化について
Web API 通信の符号化についてWeb API 通信の符号化について
Web API 通信の符号化について幸雄 村上
 
Master-Detail App を実装する
Master-Detail App を実装するMaster-Detail App を実装する
Master-Detail App を実装する幸雄 村上
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する幸雄 村上
 
Getting a packet trace
Getting a packet traceGetting a packet trace
Getting a packet trace幸雄 村上
 
The Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKitThe Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKit幸雄 村上
 
Swiftでブロックチェーンを実装する
Swiftでブロックチェーンを実装するSwiftでブロックチェーンを実装する
Swiftでブロックチェーンを実装する幸雄 村上
 
ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦幸雄 村上
 
IBM Watson Services for Core ML
IBM Watson Services for Core MLIBM Watson Services for Core ML
IBM Watson Services for Core ML幸雄 村上
 
独自Documentクラス
独自Documentクラス独自Documentクラス
独自Documentクラス幸雄 村上
 
独自Documentクラス
独自Documentクラス独自Documentクラス
独自Documentクラス幸雄 村上
 

More from 幸雄 村上 (20)

アプリケーション識別子.pdf
アプリケーション識別子.pdfアプリケーション識別子.pdf
アプリケーション識別子.pdf
 
圧縮ネイティブ・ライブラリについて.pdf
圧縮ネイティブ・ライブラリについて.pdf圧縮ネイティブ・ライブラリについて.pdf
圧縮ネイティブ・ライブラリについて.pdf
 
分散環境におけるジャストインタイム設定の試み
分散環境におけるジャストインタイム設定の試み分散環境におけるジャストインタイム設定の試み
分散環境におけるジャストインタイム設定の試み
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する
 
え!それって参照渡し?
え!それって参照渡し?え!それって参照渡し?
え!それって参照渡し?
 
プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)
プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)
プライバシーとセキュリティ(リモート通知のデバイストークンの扱いなど)
 
AppleScriptなど
AppleScriptなどAppleScriptなど
AppleScriptなど
 
MojaveのDark Mode
MojaveのDark ModeMojaveのDark Mode
MojaveのDark Mode
 
AppleScriptとは何ぞや
AppleScriptとは何ぞやAppleScriptとは何ぞや
AppleScriptとは何ぞや
 
Web API 通信の符号化について
Web API 通信の符号化についてWeb API 通信の符号化について
Web API 通信の符号化について
 
Master-Detail App を実装する
Master-Detail App を実装するMaster-Detail App を実装する
Master-Detail App を実装する
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する
 
Getting a packet trace
Getting a packet traceGetting a packet trace
Getting a packet trace
 
The Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKitThe Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKit
 
RUDP
RUDPRUDP
RUDP
 
Swiftでブロックチェーンを実装する
Swiftでブロックチェーンを実装するSwiftでブロックチェーンを実装する
Swiftでブロックチェーンを実装する
 
ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦
 
IBM Watson Services for Core ML
IBM Watson Services for Core MLIBM Watson Services for Core ML
IBM Watson Services for Core ML
 
独自Documentクラス
独自Documentクラス独自Documentクラス
独自Documentクラス
 
独自Documentクラス
独自Documentクラス独自Documentクラス
独自Documentクラス
 

談話と特殊効果 #1