Initialer Upload neues Unity-Projekt
This commit is contained in:
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Conduit.asset
(Stored with Git LFS)
Normal file
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Conduit.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d12e9b3cf69c229449cc608a02edfd44
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
92
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Conduit.md
Normal file
92
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Conduit.md
Normal file
@ -0,0 +1,92 @@
|
||||
# Conduit
|
||||
|
||||
Conduit is a productivity-enhancing framework within Voice SDK that extracts metadata from an app’s codebase at edit time to help streamline the development process, as well as to speed up dispatching during runtime. It generates a manifest file from the app that captures details of the relevant components needed to understand the voice activation structures within that app. This manifest file is then used to help dispatch incoming voice requests to the right callbacks.
|
||||
|
||||
# Benefits to Using Conduit
|
||||
|
||||
There are a number of benefits to using Conduit instead of the traditional approach to handling the metadata. These include:
|
||||
|
||||
* You don't need to manually register your callbacks. You can simply tag them with the `MatchIntent` attribute.
|
||||
|
||||
* Callbacks are strongly typed. You don't need to parse Wit Response modules to get the values of the roles. You can just write your method accepting the parameters needed. For example, `SetVolume(int level)` automatically gets the `int` value for the level role supplied when a Set Volume request is made.
|
||||
|
||||
* Enumerations are automatically matched to entity types. For example, if you have `ChangeColor(Shape shape, Color color)` where `Shape` and `Color` are enums, those values will be automatically resolved as well, provided they’ve been trained on Wit.ai.
|
||||
|
||||
* Improved performance over non-Conduit `MatchIntent`. When generating the manifest files, Conduit only uses reflection on the specific assemblies you tag with the `ConduitAssembly` attribute, rather than all available assemblies. This can result in up to a 90x faster initialization time. Additionally, during runtime, the dispatcher does not need to scan for the callbacks, as that information has already been captured in the manifest file.
|
||||
|
||||
* You can use static and instance methods as callbacks.
|
||||
|
||||
* Conduit is backwards compatible with existing `MatchIntent` attributes. In most cases, existing code will continue to work in the same way. For more information on this, see the **Current Limitations** section below.
|
||||
|
||||
# To use Conduit in your app
|
||||
|
||||
1. In the Unity editor, go to **Oculus > Voice SDK > Settings**, and select the *Use Conduit* option to enable Conduit.
|
||||

|
||||
2. Annotate your callback methods with the `MatchIntent` attribute.
|
||||
|
||||
3. Annotate the assemblies that contain your callbacks with the `ConduitAssembly` attribute. Conduit will skip all assemblies that are not annotated. This can be done by adding the following code to the `AssemblyInfo.cs` file (or another code file in the assembly that contains your callbacks): `[assembly:ConduitAssembly]`
|
||||
|
||||
# Current Limitations
|
||||
|
||||
Conduit is currently in a beta version and, because of this, some functionality may not work as expected. If needed, you can disable Conduit in the **Voice SDK Settings** window to return your project to its prior state.
|
||||
|
||||
There are several known limitations at this time:
|
||||
|
||||
1. At the present time, only primitive types and enums are supported. In the meantime, you can get a Wit.ai **Response** module parameter in addition to the strongly-typed parameters by declaring it as one of the parameters.
|
||||
|
||||
2. While Conduit is backwards-compatible with legacy callback methods, the opposite is not true. A callback signature designed for Conduit (and which has a different parameter) will not work if you disable Conduit. If you expect to be switching frequently between Conduit and legacy matching, you may want to use the `ConduitAction` attribute instead.
|
||||
|
||||
3. Conduit attributes do not currently fully support multiple attributes on one callback method. While it should still invoke correctly, only the first attribute will currently be used for other metadata.
|
||||
|
||||
# Best Practices for Using Conduit to Design Voice SDK Callbacks
|
||||
|
||||
When designing the ontology of an app, consider how the flow will work end-to-end. The callback methods should be designed to map to the Wit.ai intents. While different structures may work, some will provide better accuracy and easier maintenance. Below are a few design tips to optimize your code for use with Voice SDK.
|
||||
|
||||
1. Avoid using string parameters where possible. When entities are well-defined, create an enum with the list of potential options: For example, rather than using this:
|
||||
|
||||
```
|
||||
public void DropItem(string myItem)
|
||||
```
|
||||
Try this instead:
|
||||
|
||||
```
|
||||
public void DropItem(ItemType myItem)
|
||||
```
|
||||
2. When intents are similar, consider unifying them and factoring out the concepts that vary in the entities they operate on, and then fan out from your callout in order to execute the logic you want. For example, rather than using this:
|
||||
|
||||
```
|
||||
public void CastFireBall()
|
||||
public void CastLightningBolt()
|
||||
```
|
||||
Try this instead:
|
||||
|
||||
```
|
||||
enum SpellType {Fireball, LightningBolt}
|
||||
public void CastSpell(SpellType mySpell)
|
||||
```
|
||||
3. Instead of using `OnResponse` and `OnPartialResponse` events to assign callbacks, try annotating your callbacks directly in the code using Conduit’s `MatchIntent` attribute. This can reduce maintenance overhead when you change the method’s name or signature. It can also allow you more flexibility in entity resolution.
|
||||
|
||||
4. Avoid manually parsing `WitResponseNode` unless absolutely necessary. If you just need to extract parameters, Conduit can automatically parse them for you. In this way, you can keep your code clear and concise should you make changes to your intents or slots. For example, instead of this:
|
||||
|
||||
```
|
||||
public void CastSpell(WitResponseNode node)
|
||||
{
|
||||
// Logic to extract and parse into SpellType.
|
||||
// Use SpellType here.
|
||||
}
|
||||
```
|
||||
Try this:
|
||||
|
||||
```
|
||||
public void CastSpell(SpellType mySpell)
|
||||
{
|
||||
// Use SpellType directly.
|
||||
}
|
||||
```
|
||||
5. Avoid using string literals for finite entity values when possible. For example, rather than checking that the value of the direction slot is right, compare it directly to the enum value `Direction.Right`. This can make the code less error-prone and easier to maintain.
|
||||
|
||||
6. Avoid manually synchronizing Wit.Ai entity values with your code. Conduit’s Auto Sync feature will automatically provide a sync whenever you need synchronization. This can reduce the chances of human error, as well as saving time.
|
||||
|
||||
7. Use the **Specify Assemblies** functionality in Conduit to exclude unneeded assemblies whenever possible. Fewer assemblies will usually improve runtime performance as well as reducing the chance conflicts.
|
||||
|
||||
8. When starting off, using the **Relaxed Resolution** mode in Conduit may help you get up to speed more quickly. However, when possible, it’s best to disable this mode. Doing so will usually result in slightly improved runtime performance, as well as fewer false positives.
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d3c7b6411c2a637478c26f92bab6ad4b
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 71cb586df64d3eb45ad5991527c0b7f8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Images/UseConduitCheckbox.png
(Stored with Git LFS)
Normal file
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Images/UseConduitCheckbox.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,123 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1671e86f36fb2eb48a5f41896988c447
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Voice SDK Samples.asset
(Stored with Git LFS)
Normal file
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/Voice SDK Samples.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a48e92891831ea45824207b2bce72b2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94a4be49d90a2554793758429b0f0452
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 396af1bb88d0b864fbd5e717ea7766a5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/WhatsNew/Images/ood.png
(Stored with Git LFS)
Normal file
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/WhatsNew/Images/ood.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,135 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 19b27aedc66387a4498eadde5cf95a81
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/WhatsNew/WhatsNew.asset
(Stored with Git LFS)
Normal file
BIN
Assets/Oculus/Voice/Features/VoiceHub/Hub/Pages/WhatsNew/WhatsNew.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cda2489f8652789498f6b729439e29cd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,28 @@
|
||||
# v57 Release Notes and Upgrade Guide
|
||||
|
||||
## Upgrading
|
||||
### From Any Version
|
||||
You will always get the cleanest experience by deleting your Assets/Oculus/Voice directory between updates, but it shouldn't be required.
|
||||
|
||||
### From The Last Version
|
||||
If you’re coming from v56, upgrading should be relatively smooth. You should be able to simply install the latest package on top of your existing install. As always deleting the Oculus/Voice directory before upgrading will provide the smoothest experience.
|
||||
|
||||
### From Older Versions
|
||||
It is required that you delete your existing 'Assets/Oculus/Voice/Demo' directory before making this upgrade in order to remove the previous samples that may conflict with the newly updated samples. As always deleting the Oculus/Voice directory before upgrading will provide the smoothest experience. Simply installing the package should work and the Oculus cleanup tools will remove old files.
|
||||
As of v49 we made a change to update our namespaces to match the new Meta branding. This means any code references you may have had to Voice SDK will need to have their using statements updated.
|
||||
|
||||
|
||||
## What’s New
|
||||
### In v57
|
||||
* Coming Soon
|
||||
|
||||
### In v56
|
||||
* TTS speakers now have pause & resume functionality.
|
||||
* TTS speaker events added for OnComplete which is called following load failure, load abort, playback cancellation or playback completion.
|
||||
* TTS voice sample updated to include pause button, to allow info scrolling & to use tts speaker request events via async sfx toggle.
|
||||
|
||||
### In v55
|
||||
* Samples are now accessible in the Voice Hub.
|
||||
* All samples have been cleaned up and split into their own directory to make them easier to follow.
|
||||
* TTS voices sample improved to make trying out different voices & ssml sfx effects easier.
|
||||
* TTS recently added a set of new voices. TTSWit component now has a dropdown to add new presets with voices you may not have used yet.
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce1a5341f047a8444bbb7904c19c8f3e
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user