如何在 SAPI 5 上使用 x-sampa 音标
How to use x-sampa phonetic transcription on SAPI 5
我有一堆像 "p_hleIs
这样的 x-sampa 音标,我想在 SAPI 5 中使用。
这可能吗?
我不相信,不。但是,它确实支持 IPA,据我了解,X-SAMPA 已扩展,因此可以很好地转换为 IPA。
W3.org 实际上涵盖了将 XML 语法引入 SAPI 时如何执行此操作。但是,如果您想即时使用 IPA,我会在 C++ 中执行以下操作:
m_cpVoice->Speak(L"His name is <phoneme alphabet=\"ipa\" ph=\"ɹəˈbɛːɹɾoʊ bɛˈniːnji\">Roberto Benigni</phoneme>", SVSFIsXML, NULL);
如果您出于某种原因不能使用宽字符,您可能需要像这样转换为 unicode:
m_cpVoice->Speak(L"His name is<phoneme alphabet=\"ipa\" ph=\"ˈlɑ ˈviːɾə ˈʔeɪ ˈbɛlə\"">La vita e bella </phoneme>", SVSFIsXML, NULL);
这确实看起来很糟糕。
在 C# 中可能并没有什么不同。
我有一堆像 "p_hleIs
这样的 x-sampa 音标,我想在 SAPI 5 中使用。
这可能吗?
我不相信,不。但是,它确实支持 IPA,据我了解,X-SAMPA 已扩展,因此可以很好地转换为 IPA。
W3.org 实际上涵盖了将 XML 语法引入 SAPI 时如何执行此操作。但是,如果您想即时使用 IPA,我会在 C++ 中执行以下操作:
m_cpVoice->Speak(L"His name is <phoneme alphabet=\"ipa\" ph=\"ɹəˈbɛːɹɾoʊ bɛˈniːnji\">Roberto Benigni</phoneme>", SVSFIsXML, NULL);
如果您出于某种原因不能使用宽字符,您可能需要像这样转换为 unicode:
m_cpVoice->Speak(L"His name is<phoneme alphabet=\"ipa\" ph=\"ˈlɑ ˈviːɾə ˈʔeɪ ˈbɛlə\"">La vita e bella </phoneme>", SVSFIsXML, NULL);
这确实看起来很糟糕。
在 C# 中可能并没有什么不同。